Python3 多线程版 TCP 端口扫描器是一款基于 Python3 的网络工具,主要用于快速扫描主机开启的 TCP 端口。以下是该工具的完整攻略:
1. 环境准备
首先需要在本地电脑上安装 Python3 编程环境。进入 Python3 官方网站 https://www.python.org/downloads/,下载并安装最新版本的 Python3。
2. 安装第三方模块
在使用 TCP 端口扫描器之前,还需要安装 Python 的第三方模块 scapy 和 threading,可以通过以下命令进行安装:
pip3 install scapy
pip3 install threading
3. 编写代码
创建一个名为 port_scanner.py
的文件,并复制以下代码:
import argparse
import threading
from scapy.all import *
def scanner(ip, port):
syn = IP(dst=ip)/TCP(dport=port, flags="S")
res = sr1(syn, timeout=1, verbose=0)
if res:
if res.haslayer(TCP) and res[TCP].flags == 18:
print(f"[*] {ip}:{port} is open")
return
def port_scan(ip, ports):
for port in range(ports[0], ports[1] + 1):
t = threading.Thread(target=scanner, args=(ip, port))
t.start()
def main():
parser = argparse.ArgumentParser(description="TCP port scanner")
parser.add_argument("-t", "--target", dest="target", type=str, help="target IP address")
parser.add_argument("-p", "--ports", dest="ports", type=str, help="port range, example: 1-65535")
args = parser.parse_args()
if not args.target or not args.ports:
parser.print_help()
exit(0)
ip = args.target
ports = args.ports.split("-")
ports = [int(ports[0]), int(ports[1])]
port_scan(ip, ports)
if __name__ == "__main__":
main()
4. 运行程序
通过以下命令启动程序:
python3 port_scanner.py -t 127.0.0.1 -p 1-1000
其中 -t
参数指定所要扫描的 IP 地址,-p
参数指定扫描的端口范围。如果想要扫描所有端口范围,可以指定 -p
参数为 1-65535
。
5. 示例说明
以下是两个示例:
- 扫描自己的电脑
执行以下命令:python3 port_scanner.py -t 127.0.0.1 -p 1-1000
结果如下:
[*] 127.0.0.1:22 is open
[*] 127.0.0.1:80 is open
[*] 127.0.0.1:443 is open
[*] 127.0.0.1:631 is open
此示例中,扫描的是本地电脑的 IP 地址 127.0.0.1
,并指定扫描的端口范围为 1-1000
,扫描结果显示了常见的一些端口是否开启。其中,22 端口为 SSH 端口,80 端口为 HTTP 端口,443 端口为 HTTPS 端口,631 端口为 CUPS 打印机服务端口。
- 扫描公网主机
执行以下命令:python3 port_scanner.py -t 8.8.8.8 -p 1-65535
结果如下:
[*] 8.8.8.8:53 is open
[*] 8.8.8.8:80 is open
[*] 8.8.8.8:443 is open
[*] 8.8.8.8:853 is open
此示例中,扫描的是公网的主机地址 8.8.8.8
,并指定扫描的端口范围为 1-65535
,扫描结果也显示了常见的一些端口是否开启。其中,53 端口为 DNS 服务端口,80 端口为 HTTP 端口,443 端口为 HTTPS 端口,853 端口为 DNS-over-TLS 服务端口。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3多线程版TCP端口扫描器 - Python技术站