Python
を使ってシステムのホスト名を取得する方法は、ネットワークプログラミングやシステム管理の際に非常に役立ちます。以下では、特にPython
標準ライブラリのsocket
モジュールとplatform
モジュールを使ったホスト名取得の方法について詳しく解説します。
基本的なホスト名取得 - socket.gethostname()
最もシンプルで一般的な方法は、socket
モジュールのgethostname()
メソッドを使うことです。この関数は、実行しているマシンのホスト名を返します。
import socket
print(socket.gethostname())
このコードを実行すると、ホスト名が出力されます。例えば、「my-computer」という結果が得られるかもしれません。
クロスプラットフォーム対応 - platform.node()
platform
モジュールもホスト名を取得するために使われます。特に、クロスプラットフォームな環境での利用が期待される場合に役立ちます。
import platform
print(platform.node())
platform.node()
は、socket.gethostname()
と似たような動作をしますが、環境によって異なる結果が返ることがあります。例えば、あるシステムではFQDN(完全修飾ホスト名)
を返し、他のシステムでは単純なホスト名のみを返すことがあります。
FQDN(完全修飾ホスト名)を取得する - socket.getfqdn()
完全修飾ホスト名(FQDN)を取得したい場合には、socket.getfqdn()
を使用します。この関数は、通常のホスト名にドメイン名を加えたフルの名前を返します。
import socket
print(socket.getfqdn())
このコードを実行すると、例えば「my-computer.example.com」のような結果が得られます。これは、ドメイン名付きでホスト名を取得する場合に便利です。
os
モジュールを使った方法
他にも、os
モジュールのos.uname()
メソッドを使ってホスト名を取得する方法もありますが、これはUnix系システムでのみ動作します。Windowsでの利用を考える場合、socket
やplatform
の方が汎用性があります。
import os
print(os.uname().nodename)
まとめ
Python
でホスト名を取得するには、socket.gethostname()
やplatform.node()
を使う方法が簡単でポータブルです。- クロスプラットフォーム対応が必要な場合には、
socket
かplatform
モジュールの利用を推奨します。 - 完全修飾ホスト名(FQDN)が必要な場合は、
socket.getfqdn()
を使用することで、ドメイン名も含めた情報が得られます。 これらの方法を活用することで、ホスト名の取得を容易に行うことができます。