python3扫描局域网开放端口_python 扫描局域网端口

本文介绍了一个使用Python实现的端口扫描工具,通过多线程方式快速扫描指定范围内的IP地址并检测目标端口(如MySQL默认端口3306)是否开放。该工具能够帮助用户高效地进行网络设备发现及端口状态检查。
摘要由CSDN通过智能技术生成

项目名称:端口探测扫描

作者:白

版本:1.0

注:这里以mysql 3306 为例,port 换成80 也可以

"""

#引入线程和socket的模块import  threading

import  socket

routers=[] #用于保存探测结果

lock = threading.Lock() #构造一把锁

def  main():

local_ip = socket.gethostbyname_ex(socket.gethostname())

all_threads=[]

for ip in local_ip[2]:

for i in range(1,255):

array = ip.split(".") #把IP以点号做分割

array[3]= str(i)

new_ip ='.'.join(array)  #在把列表的内容转换成IP

t = threading.Thread(target=check_ip,args=(new_ip,)) #构造线程池

t.start() #开启线程

all_threads.append(t)

for t in all_threads:

t.join() #保持队列

def check_ip(new_ip):

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #创建套接字

s.settimeout(1)

PORT = 3306

result = s.connect_ex((new_ip,PORT))

if result ==0:

lock.acquire() # 获取锁

print(new_ip.ljust(15),'port %s is open' %PORT)

lock.release() # 锁释放

print('search for router,please wait......')

if __name__ == '__main__':

main()

原文:http://blog.51cto.com/laobaiv1/2093612

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值