PythonのsocketモジュールでクライアントのIPアドレスを取得する方法
本チュートリアルでは、Pythonのsocketモジュールを使用して、クライアント(デバイス)のIPアドレスを取得する方法を解説します。ノートパソコン、スマートフォン、タブレットなど、すべてのデバイスには固有のIPアドレスが割り当てられています。socketモジュールを使えば、このIPアドレスを簡単に確認できます。
IPアドレス取得の基本的な流れ
デバイスのIPアドレスを調べるには、以下の手順に従います。
1. socketモジュールをインポートする。 2. socket.gethostname()メソッドでホスト名を取得し、変数に格納する。 3. ホスト名を引数としてsocket.gethostbyname()メソッドに渡し、 IPアドレスを取得して変数に格納する。 4. IPアドレスを出力する。
それでは、上記の手順に沿って実際にコードを書いてみましょう。
サンプルコード
## socketモジュールをインポート
import socket
## socket.gethostname()メソッドでホスト名を取得
hostname = socket.gethostname()
## socket.gethostbyname()メソッドでIPアドレスを取得
ip_address = socket.gethostbyname(hostname)
## ホスト名とIPアドレスを出力
print(f"Hostname: {hostname}")
print(f"IP Address: {ip_address}")
コードのポイント
- socket.gethostname():実行中のマシンのホスト名(コンピュータ名)を文字列で返します。
- socket.gethostbyname():指定したホスト名に対応するIPv4アドレスを返します。
- ローカルネットワーク内であれば、プライベートIPアドレス(例:192.168.x.x)が取得されます。
実行結果
上記のプログラムを実行すると、次のような出力が得られます。
Hostname: DESKTOP-A0PM5GD IP Address: 192.168.43.15
環境によって表示されるホスト名やIPアドレスは異なりますが、ご自身のPCの情報が出力されれば成功です。
まとめ
Pythonのsocketモジュールを使えば、わずか数行のコードでデバイスのホスト名とIPアドレスを簡単に取得できることが分かりました。ネットワークアプリケーション開発の基礎となる知識なので、ぜひ覚えておきましょう。チュートリアルについてご不明な点がある場合は、コメント欄でお気軽にお尋ねください。
-
Pythonで行列の転置を求めるプログラム
この記事では、与えられた問題に対する解法とアプローチについて詳しく解説します。 問題文 ある行列が与えられたとき、その転置を同じ行列に格納し、結果を表示する必要があります。 行列の転置とは、行を列に、列を行に入れ替えたものです。言い換えれば、行列Aの転置は、要素A[i][j]をA[j][i]と入れ替えることで得られます。 実装例 N = 4 def transpose(A): for i in range(N): for j in range(i+1, N): A[i][j], A[j][i] = A[j][i], A[i][j] # ドライ
-
Pythonで配列(リスト)の合計を求める方法をわかりやすく解説
この記事では、配列(リスト)の合計値を求めるという問題に対して、Pythonでの解決策とアプローチをわかりやすく解説します。 問題の定義 配列が入力として与えられたとき、その配列に含まれるすべての要素の合計を計算することを目標とします。 例えば、[1, 2, 3, 4, 5] という配列が与えられた場合、出力は 15 になります。 アプローチ1:ループを使った素朴な方法(総当たり法) 最も基本的な方法は、リストを先頭から順に走査し、各要素を合計用の変数に加算していくやり方です。手順は以下の通りです。 合計を格納する変数を 0 で初期化します。 for ループでリストの各要素を取り出し、順番に