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在命令行下使用google翻译(带语音)
Jan 16 Python
python实现定制交互式命令行的方法
Jul 03 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
利用Python代码实现一键抠背景功能
Dec 29 Python
在Matplotlib图中插入LaTex公式实例
Apr 17 Python
Python try except异常捕获机制原理解析
Apr 18 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
python计算auc的方法
Sep 09 Python
Django-simple-captcha验证码包使用方法详解
Nov 28 Python
史上最详细的Python打包成exe文件教程
Jan 17 Python
python实现图片批量压缩
Apr 24 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者的疑难问答(2)
2006/10/09 PHP
PHP 5.0 Pear安装方法
2006/12/06 PHP
jQuery 源码分析笔记
2011/05/25 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
js window.onload 加载多个函数的方法
2009/11/02 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
js动态切换图片的方法
2015/01/20 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
浅析 Vue 3.0 的组装式 API(一)
2020/08/31 Javascript
Python 判断是否为质数或素数的实例
2017/10/30 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Python聊天室程序(基础版)
2018/04/01 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
致垒球运动员加油稿
2014/02/16 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
电教室标语
2014/06/20 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
租房协议书范例
2014/10/14 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
大学生村官个人总结
2015/02/15 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL