一、多线程+socket实现端口扫描攻略
1. 确定目标IP和端口范围
2. 使用Python的socket模块创建一个服务端socket对象
3. 遍历所有需要扫描的端口,使用Python的threading模块创建多个线程,并在每个线程中执行扫描端口操作
4. 在扫描端口时,需要设置超时时间,避免线程阻塞
5. 扫描结果输出到控制台或文件
二、示例1:扫描单个端口
import socket
def scan_port(ip, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
result = s.connect_ex((ip, port))
if result == 0:
print("Port {} is open".format(port))
s.close()
if __name__ == '__main__':
ip = "127.0.0.1"
port = 80
scan_port(ip, port)
三、示例2:扫描整个端口范围
import threading
import socket
def scan_port(ip, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1)
result = s.connect_ex((ip, port))
if result == 0:
print("Port {} is open".format(port))
s.close()
if __name__ == '__main__':
ip = "127.0.0.1"
for port in range(1, 65535):
t = threading.Thread(target=scan_port, args=(ip, port))
t.start()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用多线程+socket实现端口扫描 - Python技术站