#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :python-learn
@File :socket端口扫描.py
@Author :星之尘
@Date :2023/6/12 20:06
@脚本说明:
"""
import threading
import threading
from socket import socket
def socket_scan_port(ip,port_start):
"""
端口范围有点广,1~65535,可以上创建几个线程
:param ip:
:param port_start: 从多少端口开始扫描1,101,201,301……
:return:
"""
#为什么要加100??range(1,101) range(101,201)
for port in range(port_start,port_start+100):
try:
skt =socket()
#超时的情况,超过0.5s没有连接成功,则不用连接了。
skt.settimeout(0.5)
#这个就是连接对应ip+port
skt.connect((ip,port))
print(f'{port}可以访问的')
skt.close()
except:
pass
if __name__ == '__main__':
ip=input('请输入要扫描的ip:')
#100 step 启动了100个线程,每个线程跑100个端口
for port in range(1,70000,100):
# print(port)
thread1 = threading.Thread(target=socket_scan_port,args=(ip,port))
thread1.start()
效果图