'''
python端口扫描 by 郑瑞国
1、扫描主机指定端口
(1)建立网络套接字
(2)设置网络超时
(3)建立连接
(4)打印端口
(5)关闭端口
2、扫描主机所有端口
(1)循环遍历1到最大端口
(2)启动多线程扫描端口
(3)短暂休眠等待
'''
import socket
import time
import threading
def scan_port(ip,port): #1、扫描主机指定端口
try:
s = socket.socket() #(1)建立网络套接字
s.settimeout(0.001) #(2)设置网络超时
s.connect((ip,port)) #(3)建立连接
print(port) #(4)打印端口
s.close() #(5)关闭端口
except:
pass
def scan_all_port(ip,max_port): #2、扫描主机所有端口
for port in range(1,max_port): #(1)循环遍历1到最大端口
threading._start_new_thread(scan_port,(ip,port)) #(2)启动多线程扫描端口
time.sleep(0.001) #(3)短暂休眠等待
if __name__ == '__main__':
ip = socket.gethostbyname(socket.gethostname())
scan_all_port(ip,65535)