python 实现端口扫描工具
#简单的端口扫描工具
#作者:Charles
#公众号:Charles的皮卡丘
importtime
importsocket
importthreading
#判断是否为正确的IP地址。
defisIP(ip):
ip_addr=ip.split('.')
iflen(ip_addr)!=4:
returnFalse
foripnuminip_addr:
ifnot(0<=int(ipnum)<255):
returnFalse
else:
returnTrue
#端口扫描工具
classscanThread(threading.Thread):
def__init__(self,ip,port_min=0,port_max=65535):
#初始化。
threading.Thread.__init__(self)
self.port_max=port_max
self.port_min=port_min
self.ip=ip
#assertisinstance(int,self.port_min)andisinstance(int,self.port_max)
#重写run
defrun(self):
returnself.__checker()
#检测
def__checker(self):
forportinrange(self.port_min,self.port_max):
self.__connect(port)
#连接
def__connect(self,port):
socket.setdefaulttimeout(1)
self.sock=socket.socket()
try:
start_time=time.time()
self.sock.connect((self.ip,port))
end_time=time.time()
connect_time=int(start_time-end_time)
info='Find-->[IP]:%s,[PORT]:%s,[ConnectTime]:%d'%(self.ip,port,connect_time)
print(info)
self.__save(info)
self.sock.close()
except:
#print('出错误了')
self.sock.close()
def__save(self,info):
try:
withopen('results.txt','a')asf:
f.write(info+'\n')
except:
print('写文件出现了问题')
time.sleep(0.1)
if__name__=='__main__':
#输入IP地址。
ip=input('InputIP(example):\n')
print(isIP(ip))
whilenotisIP(ip):
ip=input('请输入正确的IP地址:\n')
#输入最小端口、
port_min=input('需要扫描的最小端口为:')
whilenot(0<=int(port_min)<65535):
port_min=input('请输入正确的需要扫描的最小端口:')
port_max=input('需要扫描的最大端口为(65535):')
whilenot(0<=int(port_min)
以上就是python实现端口扫描工具的详细内容,更多关于python端口扫描工具的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。