python 实现端口扫描工具


Posted in Python onDecember 18, 2020
# 简单的端口扫描工具
# 作者: Charles
# 公众号: Charles的皮卡丘
import time
import socket
import threading

# 判断是否为正确的IP地址。
def isIP(ip):
  ip_addr = ip.split('.')
  if len(ip_addr) != 4:
   return False
  for ipnum in ip_addr:
   if not (0 <= int(ipnum) < 255):
     return False
  else:
   return True


# 端口扫描工具
class scanThread(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
   # assert isinstance(int,self.port_min) and isinstance(int,self.port_max)
  # 重写run
  def run(self):
   return self.__checker()
  # 检测
  def __checker(self):
   
   for port in range(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, [Connect Time]: %d' % (self.ip, port, connect_time)
     print(info)
     self.__save(info)
     self.sock.close()
   except:
     # print('出错误了')
     self.sock.close()
  def __save(self,info):
   try:
     with open('results.txt', 'a') as f:
      f.write(info + '\n')
   except:
     print('写文件出现了问题')
     time.sleep(0.1)

if __name__ == '__main__':
  # 输入IP地址。
  ip = input('Input IP(example <xxx.xxx.xxx.xxx>):\n')
  print(isIP(ip))
  while not isIP(ip):
   ip = input('请输入正确的IP地址:\n')
  # 输入最小端口、
  port_min = input('需要扫描的最小端口为:')
  while not (0 <= int(port_min) < 65535):
   port_min = input('请输入正确的需要扫描的最小端口:')
  port_max = input('需要扫描的最大端口为(65535):')
  while not (0 <= int(port_min) < int(port_max) < 65535):
   port_min = input('请输入正确的需要扫描的最大端口(65535):')
  num = 8
  port_max = int(port_max)
  port_min = int(port_min)
  interval = (port_max - port_min) // num
  for i in range(interval):
   scanThread(ip, i * num, (i + 1) * num).start()

以上就是python 实现端口扫描工具的详细内容,更多关于python 端口扫描工具的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 文件与目录操作
Dec 24 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
Python3访问并下载网页内容的方法
Jul 28 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
python日期相关操作实例小结
Jun 24 Python
Python 实现自动导入缺失的库
Oct 29 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
python中的列表和元组区别分析
Dec 30 Python
如何利用python创作字符画
Jun 25 Python
Python-split()函数实例用法讲解
Dec 18 #Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 #Python
python 利用jieba.analyse进行 关键词提取
Dec 17 #Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 #Python
python 实现一个简单的线性回归案例
Dec 17 #Python
python BeautifulSoup库的安装与使用
Dec 17 #Python
python中翻译功能translate模块实现方法
Dec 17 #Python
You might like
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
javascrip关于继承的小例子
2013/05/10 Javascript
javascript的BOM汇总
2015/07/16 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
把大数据数字口语化(python与js)两种实现
2013/02/21 Python
Python变量和字符串详解
2017/04/29 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
python 读取DICOM头文件的实例
2018/05/07 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
python opencv实现图像配准与比较
2021/02/09 Python
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
应届生幼儿园求职信
2013/11/12 职场文书
剪彩仪式主持词
2014/03/19 职场文书
会计工作岗位职责
2015/02/03 职场文书
项目建议书
2015/02/04 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
重阳节活动主持词
2015/07/04 职场文书
校长新学期致辞
2015/07/30 职场文书
感恩老师主题班会
2015/08/12 职场文书
自愿离婚协议书范本2016
2016/03/18 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
logback如何自定义日志存储
2021/08/30 Java/Android