Разработка оружия на Python — Глава об оружии. Модуляризация сбора информации Whois (45)
При проникновении нам необходимо провести комплексный сбор информации. Помимо активного сбора информации, мы часто также проводим пассивный сбор информации. Сбор информации Whois является одним из них. Мы можем использовать некоторые веб-сайты для сбора информации Whois, например доменное имя Whois запрос — например, « Домашняя страница веб-мастера» , как показано на рисунке ниже. Мы используем этот веб-сайт для запроса некоторой связанной информации о доменном имени о qq.com, как показано на рисунке:
Итак, как нам использовать Python для разработки этой функции? , принцип сбора информации Whois заключается в использовании командной строки для вызова командного запроса whois или вызова некоторых веб-сайтов для запроса соответствующей информации. Нам необходимо обратить внимание на два момента:
- Сначала определите, существует ли доменное имя.
- Затем проверьте информацию whois этого доменного имени.
Вот простой пример сценария для получения местоположения и Whois-информации об IP-адресе:
Убедитесь, что у вас установлена библиотека запросов, которую можно установить с помощью следующей команды:
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: