home changes contents help options

224:ホスト名とIPアドレスを変換する

socketモジュール を使います。

ホスト名からgethostbyname()で取るとローカルのアドレスが取れるようです。 gethostbyname_ex()を使えば外部のアドレスが取れます。

>>> import socket
>>> socket.gethostname()
'epia'
>>> socket.gethostbyname('epia')
'127.0.0.1'
>>> socket.gethostbyname_ex('epia')
('localhost.localdomain', ['localhost', 'epia', 'epia', 'lightson.dip.jp'], ['127.0.0.1', '192.168.11.9'])
>>> socket.gethostbyname_ex('epia')[2][1]
'192.168.11.9'
>>> socket.gethostbyaddr('192.168.11.9')
('lightson.dip.jp', ['epia'], ['192.168.11.9'])