Python武器库开发-武器库篇之Whois信息收集模块化(四十五)
我们在进行渗透的时候,需要进行全面的信息收集,除了主动信息收集之外,我们还经常会进行被动信息收集,Whois信息收集就是其中的一种,我们可以利用一些网站进行Whois信息收集,比如域名Whois查询-站长之家,比如下图我们用该网站去查询关于 qq.com 的一些相关的域名信息,如图:
那么我们该如何用Python去开发这一功能呢?,Whois信息收集的原理就是使用命令行调用whois命令查询或者是去调用一些网站上去查询相关的信息,这一点我们需要注意两点:
- 先判断该域名是否存在
- 再去查询这个域名的whois信息
以下是一个简单的示例脚本来获取IP地址的归属地和whois信息:
确保已经安装了requests库,可以使用以下命令安装:
pip install requests
import requests
def get_ip_details(ip):
url = f"http://ip-api.com/json/{ip}"
response = requests.get(url)
data = response.json()
if data['status'] == 'fail':
return "无法获取IP信息"
ip_details = {
'IP地址': data['query'],
'所在国家': data['country'],
'所在城市': data['city'],
'运营商': data['isp'],
'ASN': data['as'],
'是否代理': data['proxy']
}
return ip_details
def get_whois_info(ip):
url = f"http://ip-api.com/whois/{ip}"
response = requests.get(url)
whois_info = response.text
return whois_info
if __name__ == "__main__":
ip = input("请输入IP地址: ")
ip_details = get_ip_details(ip)
whois_info = get_whois_info(ip)
print("IP详细信息:")
for key, value in ip_details.items():
print(f"{key}: {value}")
print("\nWhois信息:")
print(whois_info)
在运行脚本时,输入要查询的IP地址,脚本将返回IP的详细信息和whois信息: