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()を使用することで、ドメイン名も含めた情報が得られます。 これらの方法を活用することで、ホスト名の取得を容易に行うことができます。