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 相关文章推荐
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
Pytorch入门之mnist分类实例
Apr 14 Python
python编辑用户登入界面的实现代码
Jul 16 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
python实现代码统计程序
Sep 19 Python
python实现tail实时查看服务器日志示例
Dec 24 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
python中子类与父类的关系基础知识点
Feb 02 Python
python中numpy.empty()函数实例讲解
Feb 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
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
javascript模拟命名空间
2015/04/17 Javascript
完美实现八种js焦点轮播图(上篇)
2016/07/18 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
python连接sql server乱码的解决方法
2013/01/28 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
加工操作管理制度
2014/01/19 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
企业标语口号
2014/06/10 职场文书
模范班主任事迹材料
2014/12/17 职场文书
表扬稿范文
2015/01/17 职场文书
年会主持人开场白台词
2015/05/29 职场文书
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python