写一段基于多线程的端口扫描程序的代码
时间: 2023-04-06 20:03:10 浏览: 92
以下是基于多线程的端口扫描程序的代码:
```python
import socket
import threading
def scan_port(ip, port):
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((ip, port))
if result == 0:
print(f"Port {port} is open")
sock.close()
except:
pass
def scan(ip, start_port, end_port):
for port in range(start_port, end_port+1):
t = threading.Thread(target=scan_port, args=(ip, port))
t.start()
if __name__ == "__main__":
ip = "127.0.0.1"
start_port = 1
end_port = 65535
scan(ip, start_port, end_port)
```
这段代码使用了多线程来扫描指定 IP 地址的所有端口。首先定义了一个 `scan_port` 函数,用于扫描单个端口。然后定义了一个 `scan` 函数,用于循环调用 `scan_port` 函数,并创建多个线程来并发执行。最后在 `main` 函数中指定要扫描的 IP 地址、起始端口和结束端口,然后调用 `scan` 函数开始扫描。
阅读全文