python 实现的IP 存活扫描脚本


Posted in Python onDecember 10, 2020

下载地址

ActiveOrNot

用于处理 oneforall 等子域名扫描工具的结果去重 + 主机存活扫描

参数

-f --file  指定存放ip或子域名的文件,默认 ip.txt
-t --thread  设置线程数,默认 50

python3 ActiveOrNot.py -f ip.txt -t 12

具体代码 ActiveOrNot.py

from threading import Thread
from queue import Queue
import requests
from time import time
import argparse

headers = {
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
}


def ping(url, new_ip):
 url = url.strip()
 if (not url.startswith('http://')) and (not url.startswith('https://')):
  url = 'http://' + url
 try:
  req = requests.get(url, headers=headers, timeout=2)
  new_ip.put(url + ' -- ' + str(req.status_code))
  print("%s 存活" % url)
 except:
  print("%s 不存活" % url)


def new_list(file):
 with open(file, 'r') as f:
  new_ip = []
  ip_list = f.readlines()
  for ip in ip_list:
   ip = ip.strip().replace('http://', '').replace('https://', '')
   if ip:
    if not (ip in new_ip):
     new_ip.append(ip)
  return new_ip


def main(file, th):
 begin_time = time()
 new_ip = Queue()
 ip_list = new_list(file)
 j = 0
 length = len(ip_list)
 while j < length:
  threads = []
  for i in range(th):
   t = Thread(target=ping, args=(ip_list[j], new_ip))
   t.start()
   threads.append(t)
   j += 1
   if j == length:
    break
  for thread in threads:
   thread.join()
 with open('NewIP.txt', 'a+') as nf:
  while not new_ip.empty():
   nf.write(new_ip.get()+'\n')
 end_time = time()
 run_time = end_time - begin_time
 print("总共耗时 %s 秒"% run_time)


if __name__ == '__main__':
 parser = argparse.ArgumentParser(description='url active scan')
 parser.add_argument("-f", "--file", help="指定文件", default='ip.txt')
 parser.add_argument("-t", "--thread", help="设置线程", default=50)
 args = parser.parse_args()
 file = args.file
 th = args.thread
 main(file, th)

以上就是python 实现的IP 存活扫描脚本的详细内容,更多关于python ip存活扫描的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
用Python编写一个简单的俄罗斯方块游戏的教程
Apr 03 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
python绘制热力图heatmap
Mar 23 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
python列表推导式操作解析
Nov 26 Python
使用Python将图片转正方形的两种方法实例代码详解
Apr 29 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
python GUI计算器的实现
Oct 09 Python
class类在python中获取金融数据的实例方法
Dec 10 #Python
Python制作简单的剪刀石头布游戏
Dec 10 #Python
python给list排序的简单方法
Dec 10 #Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 #Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 #Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 #Python
python 实现ping测试延迟的两种方法
Dec 10 #Python
You might like
PHP实现的多维数组去重操作示例
2018/07/21 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python__new__内置静态方法使用解析
2020/01/07 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
大学生毕业自我鉴定
2013/11/06 职场文书
音乐学个人的自荐书范文
2013/11/26 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
2014年感恩母亲演讲稿
2014/05/27 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
个人委托书范本
2014/09/13 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android