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实现爬虫下载漫画示例
Feb 16 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
python判断数字是否是超级素数幂
Sep 27 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
Python 画出来六维图
Jul 26 Python
基于python的列表list和集合set操作
Nov 24 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
Python文件时间操作步骤代码详解
Apr 13 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
python操作链表的示例代码
Sep 27 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php print EOF实现方法
2009/05/21 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
php 函数中使用static的说明
2012/06/01 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
python 获取et和excel的版本号
2009/04/09 Python
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
python使用marshal模块序列化实例
2014/09/25 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
h5封装下拉刷新
2020/08/25 HTML / CSS
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
电子商务专业学生的自我鉴定
2013/11/28 职场文书
给老婆的婚前保证书
2014/02/01 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
经验交流材料格式
2014/12/30 职场文书
会议欢迎词范文
2015/01/27 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书