python多线程扫描端口
时间: 2023-10-13 14:28:37 浏览: 93
可以使用Python的socket模块来扫描端口,同时使用多线程可以提高扫描效率。以下是一个简单的Python多线程扫描端口的示例代码:
```python
import socket
import threading
# 定义扫描端口的函数
def scan_port(host, port):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
s.connect((host, port))
print(f"Port {port} is open")
s.close()
except:
pass
# 定义多线程扫描端口的函数
def scan_ports(host):
for port in range(1, 1024):
t = threading.Thread(target=scan_port, args=(host, port))
t.start()
# 测试
if __name__ == '__main__':
host = '127.0.0.1'
scan_ports(host)
```
在这个示例代码中,首先定义了一个`scan_port`函数来扫描指定主机的指定端口。然后定义了一个`scan_ports`函数来使用多线程扫描指定主机的1~1023号端口。最后在主程序中调用`scan_ports`函数,并传入要扫描的主机IP地址。
阅读全文