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之编写类之四再论继承
Oct 11 Python
Python的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python实现简单的语音识别系统
Dec 13 Python
Python实现简单遗传算法(SGA)
Jan 29 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 Python
python 实现逻辑回归
Dec 30 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
DWR Ext 加载数据
2009/03/22 Javascript
jQuery 隔行换色 支持键盘上下键,按Enter选定值
2009/08/02 Javascript
再次分享18个非常棒的jQuery表格插件
2011/04/10 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
javascript实现简单的二级联动
2015/03/19 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
vue富文本编辑器组件vue-quill-edit使用教程
2018/09/21 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
js+cavans实现图片滑块验证
2020/09/29 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
Python函数中不定长参数的写法
2019/02/13 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
公司清洁工岗位职责
2013/12/14 职场文书
初中政治教学反思
2014/01/17 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
vue判断按钮是否可以点击
2022/04/09 Vue.js
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python