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的socket编程入门教程
Apr 23 Python
Python实现处理管道的方法
Jun 04 Python
使用Python编写简单的端口扫描器的实例分享
Dec 18 Python
python 性能提升的几种方法
Jul 15 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
查看Python依赖包及其版本号信息的方法
Aug 13 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
Nov 05 Python
Python提取PDF指定内容并生成新文件
Jun 09 Python
Python 实现Mac 屏幕截图详解
Oct 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
php中$this-&amp;gt;含义分析
2009/11/29 PHP
Javascript MD4
2006/12/20 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
js闭包实例汇总
2014/11/09 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
python文件比较示例分享
2014/01/10 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
python互斥锁、加锁、同步机制、异步通信知识总结
2018/02/11 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
幼师专业毕业生自荐信
2013/09/29 职场文书
区域销售经理职责
2013/12/22 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
地心历险记观后感
2015/06/15 职场文书
导游词之无锡唐城
2019/12/12 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
Python绘画好看的星空图
2022/03/17 Python
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers