読者です 読者をやめる 読者になる 読者になる

sonickun.log

備忘録

Pythonでnslookup(ドメインの正引きと逆引き)する

プログラミング ネットワーク

ドメインの情報が知りたければdignslookupコマンドを叩けば良いっていう話ですが,複数ドメインもしくは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