ホスト名からIPv4アドレスを取得
>>> import socket
>>> socket.gethostbyname('www.python.org')
'82.94.164.162'
IPアドレスからホスト名を取得
>>> socket.gethostbyaddr('82.94.164.162')
('dinsdale.python.org', [], ['82.94.164.162'])
ホスト名からIPv6アドレスを取得したい場合はgetaddrinfoを使うみたいです。
関連記事
Pythonで日本語ドメインの変換
Pythonを使ってPunycode表記に変換する方法
日本語ドメイン名をPunycode表記に変換
>>> u'日本語.jp'.encode('idna')
'xn--wgv71a119e.jp'
Punycode表記を日本語ドメイン名に変換
>>> 'xn--wgv71a119e.jp'.decode('idna')
u'\u65e5\u672c\u8a9e.jp'
...