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中 __get__和__getattr__和__getattribute__的区别
Jun 16 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
简单了解OpenCV是个什么东西
Nov 10 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
Python实现的栈(Stack)
Jan 26 Python
Python 编程速成(推荐)
Apr 15 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
python 设置输出图像的像素大小方法
Jul 04 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
Pycharm debug调试时带参数过程解析
Feb 03 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 Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
PHP读MYSQL中文乱码的快速解决方法
2016/10/01 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
js tab 选项卡
2009/04/26 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
node.js require() 源码解读
2015/12/13 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
ajax异步请求详解
2017/01/06 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
浅谈python出错时traceback的解读
2020/07/15 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
法院授权委托书格式
2014/09/28 职场文书
2014年科技工作总结
2014/11/26 职场文书
质量保证书格式模板
2015/02/27 职场文书
独生子女证明范本
2015/06/19 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL