Python 兵器開発 - 兵器編 Whois 情報収集のモジュール化 (45)
侵入する際には、包括的な情報収集を行う必要があります。積極的な情報収集に加えて、受動的な情報収集も行うことがよくあります。Whois 情報の収集もその 1 つです。ドメイン名 Whois など、Whois 情報を収集するためにいくつかの Web サイトを使用できます。クエリ - Webmaster's Home。たとえば、次の図に示すように、この Web サイトを使用して、qq.com に関するいくつかの関連ドメイン名情報をクエリします。
では、Python を使用してこの関数を開発するにはどうすればよいでしょうか? Whois 情報収集の原則は、コマンド ラインを使用して Whois コマンド クエリを呼び出すか、いくつかの Web サイトを呼び出して関連情報をクエリすることですが、次の 2 つの点に注意する必要があります。
- まずドメイン名が存在するかどうかを確認します
- 次に、このドメイン名の Whois 情報を確認します。
IP アドレスの場所と Whois 情報を取得する簡単なスクリプトの例を次に示します。
リクエスト ライブラリがインストールされていることを確認してください。これは、次のコマンドを使用してインストールできます。
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 情報を返します。