Python

Pythonでホスト名とIPアドレスを取得する

Pythonでホスト名とIPアドレスを取得する

Pythonでホスト名とIPアドレスを取得する。

サーバー上でプログラムを動かしていると、Pythonでホスト名やIPを取得したいことがある。
今回はPythonでホスト名やIPが取得できると嬉しい理由と取得する方法について紹介する。



IPアドレスとは?

「そもそもIPアドレスとは何ぞ?」という方の為にざっくり説明すると、IPアドレスとはアドレスの名が示すようにネットワーク上の住所である。
まぁ数値で示されるので住所というよりは緯度経度のような座標の方が近いだろうか。

このIPアドレスを使ってPCやサーバーはデータの送信元と送信先を判別している。

IPアドレス(アイピーアドレス、英: Internet Protocol address)とは、IPにおいてパケットを送受信する機器を判別するための番号である。
IPアドレス - Wikipedia


ホスト名とは?

「じゃあホスト名って何よ?」となる訳だが、ホスト名はIP(座標)に対応する名称(地名)である。
イメージとしては、地名は予め知っておかなければ場所がわからないが、座標であれば場所を特定できる感覚。

ホスト名(ホストめい)あるいはサイト名(サイトめい)とは、コンピュータ、ファイルサーバ、ネットワークストレージデバイス、FAX、コピー機、ケーブルモデム、ルータなどネットワークに接続された機器(ホスト)に付けられた名前。ホスト名はWorld Wide Web、電子メールあるいはUsenetのようなさまざまな電子通信の形式において特定のホストを識別するために使われる。
インターネット上では、「ホスト名」と「ドメイン名」はしばしば同じ意味で使われるが、両者には微妙な技術的違いがある。
ホスト名 - Wikipedia


ホスト名やIPがわかると何が嬉しいか

ホスト名やIPが取得できるとシステム運用に役立つ。

  • マシンを判別できる

例えば同じ内容のコード sample.py が同じ設定をされた サーバーAサーバーB で動いている場合を考える。
sample.py の内容は変わらないので、サーバーA 上の動作と サーバーB 上の動作は同じになるので区別が付かない。
サーバーA 上で例外が発生して警告メールを送信しても サーバーA を区別できる情報が無ければどちらで例外が発生したかわからないが、ホスト名やIPがわかれば サーバーAサーバーB を区別することができる。


ホスト名やIPの取得方法

ホスト名やIPを取得するには socket を利用する。

[python title="socket_sample.py"]
import socket

host = socket.gethostname()
print(host)
#hoge PC
ip = socket.gethostbyname(host)
print(ip)
#192.168.0.X
[/python]

参考
PythonでIPアドレスを取得する方法【初心者向け】 | TechAcademyマガジン


まとめ

  • ホスト名やIPはネットワーク上の住所のようなもの
  • ホスト名やIPがわかるとマシンの特定に役立つ
  • ホスト名やIPを取得するには socket を利用する


ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-Python
-

© 2024 ITips