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 生成目录树及显示文件大小的代码
Jul 23 Python
深入探究Django中的Session与Cookie
Jul 30 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
Python语言描述随机梯度下降法
Jan 04 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
Python进程池Pool应用实例分析
Nov 27 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 Python
Python实现聚类K-means算法详解
Jul 15 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微信公众号开发之现金红包
2018/04/16 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
jquery-syntax动态语法着色示例代码
2014/05/14 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
Vue计算属性的使用
2017/08/04 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
Python只用40行代码编写的计算器实例
2017/05/10 Python
python 常用的基础函数
2018/07/10 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
Python3中exp()函数用法分析
2019/02/19 Python
Python创建或生成列表的操作方法
2019/06/19 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
监理员的岗位职责
2013/11/13 职场文书
大学学风建设方案
2014/05/04 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
教师节学生演讲稿
2014/09/03 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
优秀教师单行材料
2014/12/16 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
围城读书笔记
2015/06/26 职场文书
2015团员个人年度总结
2015/11/24 职场文书
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL