web-dev-qa-db-ja.com

Pythonで完全修飾ホスト名を取得するにはどうすればよいですか?

Pythonでホスト名を取得しようとしています。 Linuxでは、コマンドプロンプトでhostnameと入力すると、次のようになります。

root@phxdbx45:/home/david/zkpython# hostname
phxdbx45

しかし、hostname -fと入力すると、ubuntuで完全修飾ホスト名を下回ります。これは、Pythonからも必要です。

root@phxdbx45:/home/david/zkpython# hostname -f
phxdbx45.phx.Host.com

Python以下のコードを使用できますが、完全修飾ホスト名は得られません。前述のように、hostnameの出力が得られます。

#!/usr/bin/python

import socket

hostname = socket.gethostname()
print hostname

Pythonで完全修飾ホスト名を取得する方法はありますか?これは信頼性が高く正しいですか?

10
arsenal

わかりやすい名前の関数を使用する socket.getfqdn()

>>> import socket   
>>> socket.getfqdn()
'phxdbx45.phx.Host.com'
29
rightfold