追記:2010年8月6日 逆引きに関する記述が間違っていたので訂正しました。
タイトルの通りhostnameからIPアドレスに変換するプログラム。
調べてみるとPythonのsocket使えば解決するみたい。
hostname => IP
socket.gethostbyname
IP => hostname
socket.gethostbyaddr
今回使うのはgethostbynameの正引きの方。
ソース (lookup.py)
# -*- coding: utf-8 -*- import socket import sys def main(): if(len(sys.argv) != 2): print "Usage: python lookup.py <host filename>" sys.exit() filename = sys.argv[1] fr = open(filename, "r") ip_addr = [] while 1: s = fr.readline() if not s: break hostname = s[:len(s)-1] print hostname try: print socket.gethostbyname(hostname) except: print "0" fr.close() main()
サンプルファイル (sample_hostname)
$ less sample_hostname www.google.com www.yahoo.co.jp twitter.com hatena.ne.jp
実行例
$ python lookup.py sample_hostnames www.google.com 66.249.89.99 www.yahoo.co.jp 124.83.139.191 twitter.com 128.242.240.116 hatena.ne.jp 59.106.108.86