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 相关文章推荐
Python3.x中自定义比较函数
Apr 24 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
Python命令启动Web服务器实例详解
Feb 23 Python
python 容器总结整理
Apr 04 Python
几种实用的pythonic语法实例代码
Feb 24 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 Python
利用Python脚本写端口扫描器socket,python-nmap
Jul 23 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中动态HTML的输出技术
2006/10/09 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
详解python:time模块用法
2019/03/25 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python3 合并二叉树的实现
2019/09/30 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
应届毕业生个人求职自荐信
2014/01/06 职场文书
周年庆促销方案
2014/03/15 职场文书
诚信考试倡议书
2014/04/15 职场文书
高中综合实践活动总结
2014/07/07 职场文书
2014年安全生产责任书
2014/07/22 职场文书
学习保证书
2015/01/17 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript