Pythonでnslookup(ドメインの正引きと逆引き)する
ドメインの情報が知りたければdig
やnslookup
コマンドを叩けば良いっていう話ですが,複数のドメインもしくはIPアドレスをまとめて処理したいってこと,あるあるですよね.
Python Script
lookup.py
# -*- coding: utf-8 -*- import socket import sys # 正引き def foward_lookup(domain): try: return socket.gethostbyname(domain) except: return False # 逆引き def reverse_lookup(ip): try: return socket.gethostbyaddr(ip)[0] except: return False if __name__ == "__main__": f = open(sys.argv[1]) # ファイルの読み込み for host in f: host = host.replace("\n","") # 正引き ip = foward_lookup(host) print ip # 逆引き #domain = reverse_lookup(host) #print domain f.close()
正引き
Input Data
data1.txt
twitter.com google.com sonickun.tokyo yahoo.jp
Output
# python lookup.py data1.txt 199.59.148.82 173.194.117.174 False 183.79.227.111
逆引き
Input Data
data2.txt
199.59.148.82 173.194.117.174 8.8.8.8 183.79.227.111
Output
# python lookup.py data2.txt r-199-59-148-82.twttr.com nrt04s10-in-f14.1e100.net google-public-dns-a.google.com yjpn110.mobile.vip.ogk.yahoo.co.jp