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中的几种数据类型
Jan 02 Python
python的变量与赋值详细分析
Nov 08 Python
python批量修改图片大小的方法
Jul 24 Python
python实现windows壁纸定期更换功能
Jan 21 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
24式加速你的Python(小结)
Jun 13 Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
Jul 11 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
python等待10秒执行下一命令的方法
Jul 19 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 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使用正则表达式获取图片url的方法
2015/01/16 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
JS解密入门 最终变量劫持
2008/06/25 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
利用jquery包将字符串生成二维码图片
2013/09/12 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
常用jQuery选择器汇总
2017/02/02 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
Angular排序实例详解
2017/06/28 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
Python封装原理与实现方法详解
2018/08/28 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
计算机专业应届毕业生自荐信
2013/09/26 职场文书
李开复演讲稿
2014/05/24 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS