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实现的简单模板引擎功能示例
Sep 02 Python
Python实现的摇骰子猜大小功能小游戏示例
Dec 18 Python
Python简单实现控制电脑的方法
Jan 22 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
java中两个byte数组实现合并的示例
May 09 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
Python实现查找二叉搜索树第k大的节点功能示例
Jan 24 Python
Django中create和save方法的不同
Aug 13 Python
wxPython电子表格功能wx.grid实例教程
Nov 19 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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查看session内容的函数
2008/08/27 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
laravel model 两表联查示例
2019/10/24 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
JQuery判断checkbox是否选中及其它复选框操作方法合集
2015/06/01 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
小程序清理本地缓存的方法
2018/08/17 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
vue设置动态请求地址的例子
2019/11/01 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
大学自我评价
2014/02/12 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
电视节目策划方案
2014/05/16 职场文书
小班教师个人总结
2015/02/05 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
企业战略合作意向书
2015/05/08 职场文书