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 自动安装 Rising 杀毒软件
Apr 24 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
python实现人工智能Ai抠图功能
Sep 05 Python
python Popen 获取输出,等待运行完成示例
Dec 30 Python
Pytorch之view及view_as使用详解
Dec 31 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
python 安装移动复制第三方库操作
Jul 13 Python
Python通过format函数格式化显示值
Oct 17 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数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
js中的闭包实例展示
2018/11/01 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
python实现中文转换url编码的方法
2016/06/14 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
Pycharm Git 设置方法
2020/09/15 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
一套Java笔试题
2016/08/20 面试题
学生安全教育材料
2014/02/14 职场文书
学习决心书范文
2014/03/11 职场文书
七一建党日演讲稿
2014/09/05 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
2019销售早会主持词
2019/06/27 职场文书
导游词之张家界
2019/10/31 职场文书
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技