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获得图片base64编码示例
Jan 16 Python
python fabric实现远程操作和部署示例
Mar 25 Python
使用python实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
Django1.7+python 2.78+pycharm配置mysql数据库
Oct 09 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
Feb 14 Python
用python实现学生管理系统
Jul 24 Python
Python为何不支持switch语句原理详解
Oct 21 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
使用数据库保存session的方法
2006/10/09 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
显示js对象所有属性和方法的函数
2009/10/16 Javascript
用js实现in_array的方法
2013/11/05 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
浅析Jquery操作select
2016/12/13 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Android分包MultiDex策略详解
2017/10/30 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Python 爬虫的原理
2020/07/30 Python
python获取linux系统信息的三种方法
2020/10/14 Python
Python调用Redis的示例代码
2020/11/24 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
服装设计行业个人的自我评价
2013/12/20 职场文书
校园新闻广播稿
2014/01/10 职场文书
眼镜促销方案
2014/03/15 职场文书
市场营销计划书
2015/01/17 职场文书
导游词开场白
2015/01/31 职场文书
体育活动总结
2015/02/04 职场文书
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android