Pythonでホスト名とIPアドレスを表示する方法【socketモジュール活用】
Pythonでは、標準ライブラリの socket モジュールに用意されている gethostname() と gethostbyname() の2つの関数を使うことで、ローカルマシンのホスト名とIPアドレスを簡単に取得できます。
gethostname() は、実行中のマシン(ローカルホスト)の標準的なホスト名を取得する関数です。一方、gethostbyname() は、指定したホスト名に対応する情報をホストデータベースから検索し、IPアドレスを返す関数です。
socket.gethostname() socket.gethostbyname()
アルゴリズム
- ステップ1: socketモジュールをインポートします。
- ステップ2:
gethostname()を使って、ローカルマシンの標準ホスト名を取得します。 - ステップ3:
gethostbyname()を使って、取得したホスト名に対応するIPアドレスをホストデータベースから検索して表示します。
サンプルコード
# ホスト名とIPアドレスを表示する
import socket
def host_IP():
try:
hname = socket.gethostname()
hip = socket.gethostbyname(hname)
print("Hostname: ", hname)
print("IP Address: ", hip)
except:
print("Unable to get Hostname and IP")
# 関数の呼び出し
host_IP()
実行結果
Hostname: Satyajit-PC IP Address: 192.168.1.66
解説
このプログラムでは、まず import socket でsocketモジュールを読み込みます。次に host_IP() 関数内で socket.gethostname() を呼び出してホスト名を取得し、そのホスト名を引数として socket.gethostbyname() に渡すことで、対応するIPアドレスを取得しています。
また、例外処理(try-except)を組み込むことで、ネットワーク設定の問題などでホスト名やIPアドレスが取得できなかった場合にも、エラーメッセージを表示してプログラムが異常終了しないようにしています。
なお、より現代的な環境では socket.gethostbyname() の代わりに socket.getaddrinfo() を使う方法も推奨されています。getaddrinfo() はIPv4・IPv6の両方に対応しており、より柔軟なアドレス解決が可能です。
-
Tkinterウィンドウにホスト名とIPアドレスを表示する方法
ユーザーのIPアドレスを取得するには、Pythonの標準ネットワーキングインターフェースであるsocketモジュールを使用します。まずデバイスのホスト名を照会し、その後に関連付けられたIPアドレスを取得するという流れになります。この記事では、socketライブラリを使ってホスト名とIPアドレスを取得し、それらを2つのラベルに表示する方法を解説します。実装の手順tkinterライブラリをインポートし、tkinterフレームのインスタンスを作成します。geometryメソッドを使ってフレームのサイズを設定します。次に、socketライブラリのgethostname()メソッドを使用してホスト名を取
-
Pythonによるデータ分析と可視化入門!pandas・matplotlibの使い方を解説
このチュートリアルでは、Pythonのpandasやmatplotlibなどのモジュールを使ったデータ分析と可視化の方法を学びます。Pythonはデータ分析に非常によく適した言語です。まずは以下のコマンドでpandasとmatplotlibをインストールしましょう。 pip install pandas pip install matplotlib インストールが完了すると成功メッセージが表示されます。まずpandasについて学び、その後でmatplotlibを見ていきましょう。 pandasとは pandasはPythonのオープンソースライブラリで、データ分析のための豊富なツールを提供し