侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Python3 批量扫描端口的例子

Python  /  管理员 发布于 7年前   251

用法

本脚本用于批量扫描端口

1.在同目录下创建输入文件,属性inputFile为输入文件名

2.属性th为线程数

3.属性port为探测的目标端口

4.属性arg为默认的命令

不推荐扫描全端口,速度非常慢.脚本中有常见端口,可直接使用

默认命令下端口对应服务可能存在不准确的情况,可加-sV对版本进行详细探测,或对本脚本的输出使用此脚本进行专门的探测

代码

#依赖python-nmap,openpyxl包import nmapimport openpyxlimport IPyfrom multiprocessing import Pool as ThreadPool# 同目录下创建一个input.txt,放入ip地址列(从xlsx中直接粘贴即可)expath=''inputFile='2001_3000.txt'th=20#扫描端口#port='1521,1158,2100,3306,1433,1434,5000,5432,27017,6379,11211,80,8080,443,8000,8081,7001,9080,9090,22,23,10027,3389,5631,111,6000,135,445,139,21,25,110,69,161,162,53,5901,5902,2601-2609 'port='1-65535'#默认命令arg='-Pn -T4'#输出文件名import timetime_rq = time.strftime('%Y-%m-%d', time.localtime(time.time()))outPutFile = time_rq + '2001_3000.txt'def readfile(path):  # 返回url列表  file = open(path, 'r',encoding='utf-8')  urlList=[]  for eachline in file.readlines():    #获得地址段    url=eachline.rsplit()[0]    # add=IPy.IP(url)#地址段列表    # for u in add:    #   ip=u.__str__();    #   urlList.append(ip)    urlList.append(url);  file.close()  # 造infoList  infoList=[]  for url in urlList:    info={'hostname':url,'port':port,'arg':arg}    infoList.append(info)  return infoListdef scan(info):  hostName=info['hostname']  port=info['port']  print(hostName+'扫描开始')  scanner=nmap.PortScanner()  scanner.scan(hosts=hostName,ports=port,arguments=arg)  # print(res)  out=open(outPutFile,'a+',encoding='utf-8')  # out.write()  state=scanner[hostName].state()  tcp_ports=scanner[hostName].all_tcp()  print(hostName+' '+state)  for ports in tcp_ports:    if scanner[hostName]['tcp'][ports]['state'] =='open' :      st=hostName+' '+str(ports)+' '+scanner[hostName]['tcp'][ports]['name']+' '+scanner[hostName]['tcp'][ports]['state']+'\n'      out.write(st)      print(st)  # print(hostName)  out.close()def makeEx():  print('----------------开始写入-------------------')  wb=openpyxl.load_workbook(expath)  sheet=wb.active  c=open(outPutFile,'r',encoding='utf-8')  i=1  for line in c.readlines():    linelist=line.split()    ip=linelist[0]    port=linelist[1]    name=linelist[2]    status=linelist[3]    for j in range(4):      if j==3:        n=linelist[j]        n=n.rsplit()        n=n[0]        sheet.cell(row=i, column=j + 1, value=n)      else:        sheet.cell(row=i,column=j+1,value=linelist[j])    i=i+1  c.close()  wb.save(expath)  print('----------------写入完成-------------------')if __name__ == '__main__':  print('----------------扫描开始-------------------')  start=time.time()  pool = ThreadPool(th)  infolist=readfile(inputFile)  pool.map(scan,infolist)  pool.close()  pool.join()  finish=time.time()  print('----------------扫描完成-------------------')  t=finish-start  print('用时 %f'%t)  out = open(outPutFile, 'a+', encoding='utf-8')  out.write('\n用时 %f'%t)  # makeEx()  # info={'hostname':'135.233.115.55','port':'22,23,21,80,3389,5901,5902','arg':'-Pn -sV -T4'}

输入文件示例

61.128.108.9461.128.111.24661.128.122.111222.83.20.1861.128.108.67120.70.226.131

输出文件示例

106.124.93.76 22 ssh open106.124.93.76 23 telnet open106.124.93.76 8000 http-alt open106.124.93.83 23 telnet open

以上这篇Python3 批量扫描端口的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


  • 上一条:
    python找出因数与质因数的方法
    下一条:
    python3 批量获取对应端口服务的实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客