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 を利用する。

import socket

host = socket.gethostname()
print(host)
#hoge PC
ip = socket.gethostbyname(host)
print(ip)
#192.168.0.X

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


まとめ

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


KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。
If you felt this article is useful, please share.
にほんブログ村 IT技術ブログへ

-Python
-

Translate »
Social media & sharing icons powered by UltimatelySocial

Copyright© ITips , 2020 All Rights Reserved.