工期4天,连续运行测试时间3天,共7天
请求https方法,查询2个网站中ip解析的域名,输出保存1条最新日期记录(Passive DNS Replication)
对于频繁请求可能触发网站中的谷歌验证码,使用代理IP功能,和随机浏览器agent(有参考代码)。
https://www.virustotal.com/gui/ip-address/正常网站ip/relations
调用功能命令参数
-virustotal #用www.virustotal.com查询
-rapiddns #用rapiddns.io查询
-union #同时用www.virustotal.com和rapiddns.io这2个网站做查询
-process #设置进程数参数
-proxy #设置代理列表
-t #设置请求进程超时时间
-i #程序当前目录输入ip地址列表或IP网段文本(文件名自定义)
-o #程序当前目录输出IP地址+最新的一个域名记录,JSON格式文本(文件名自定义)
-o ip_domian_result.txt
参考界面
![](file:///E:/Program Files (x86)/WizNote/My Knowledge/temp/f1257acf-1ac6-40f8-9b3f-b23655e9ef12/128/index_files/dac9a201330376f5ad6aa0dcaa8c1e3f.png)
功能
1:显示程序运行时间。
2:显示批量请求IP数量。
3:CPU多核多进程异步请求。
4:超时请求设置,控制台界面。
5:输入内容:
程序当前目录输入ip地址列表或IP网段。
IP列表示例
10.1.1.1
10.1.1.2
10.1.1.3
IP段示例
10.1.1.1-10.255.255.255
6:输出内容:
程序当前目录输出IP地址+最新的一个域名记录,JSON格式。
技术架构要求
操作系统
Linux Ubuntu 16.04.7
http://mirrors.163.com/ubuntu-releases/16.04.7/ubuntu-16.04.7-desktop-amd64.iso
开发语言
Python3.7.9
https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
相关库参考
import argparse #命令行交互参数
import requests
import pp #Parallel Python
import aiohttp
import base64
import json
python读取超大文本防止内存溢出参考代码
with open(args.t, 'r') as f:
print(f.read(10000))
随机Agent发送HTTP头浏览器版本信息,代码参考如下:
user_agents = ["Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Firefox/38.0",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36",
"Mozilla/5.0 (Windows NT 5.1; rv:40.0) Gecko/20100101 Firefox/40.0",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)",
"Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36",
"Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0",
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0"]
def poc(url):
headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Connection": "keep-alive",
"User-Agent": user_agents[randint(0, len(user_agents) - 1)]}
这是作业?
我一般都用网站上爬虫去爬取域名信息~