Python IP 地址扫描器:高效多线程扫描
要实现扫描 IP 地址,可以使用 Python 的 'socket' 模块和 'threading' 模块来进行多线程的 IP 地址扫描。下面是一个简单的示例代码:
import socket
import threading
def scan(ip, port):
try:
sock = socket.create_connection((ip, port), timeout=2)
print(f'IP 地址 {ip} 的端口 {port} 是开放的')
sock.close()
except (socket.timeout, ConnectionRefusedError):
pass
def scan_ip(ip):
for port in range(1, 65536):
thread = threading.Thread(target=scan, args=(ip, port))
thread.start()
ip = input('请输入要扫描的 IP 地址: ')
scan_ip(ip)
在这个示例中,我们定义了一个 'scan' 函数来尝试连接给定 IP 地址和端口号。如果连接成功,说明该端口是开放的,打印相关信息。如果连接超时或连接被拒绝,则忽略该端口。
然后,我们定义了一个 'scan_ip' 函数来循环调用 'scan' 函数,对给定的 IP 地址扫描所有可能的端口号。我们使用 'threading' 模块创建多个线程来同时扫描不同的端口,以提高扫描效率。
最后,我们通过用户输入来指定要扫描的 IP 地址,并调用 'scan_ip' 函数开始扫描。
请注意,在实际使用中,需要注意合法性和安全性。
原文地址: https://www.cveoy.top/t/topic/plYF 著作权归作者所有。请勿转载和采集!