socketモジュールを使用しPythonでWebサイトのIPアドレスを取得してみます。
WebサイトのIPアドレスを取得する場合は、Webサイトのホスト名がわかっていると、socketモジュールを使用し簡単にIPアドレスが取得できます。
ホスト名とはYahoo!Japanであれば「yahoo.co.jp」がホスト名(名前・アドレス)となります。
今回使用するsocketモジュールは、Pythonの標準ライブラリとなっていますので、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)
■socketモジュールを使用しWebサイトのIPアドレスを取得する
では、早速socketモジュールを使用しWebサイトのIPアドレスを取得してみます。
■コード
import socket hostname='laboratory.kazuuu.net' hostname_ipaddress=socket.gethostbyname(hostname) print(hostname_ipaddress)
インポートでsocketモジュールを呼び出して、hostnameという変数を設定し、IPアドレスを取得するホスト名を記述します。今回は当Webサイト(https://laboratory.kazuuu.net/)のIPアドレスを取得してみます。Webサイト(https://laboratory.kazuuu.net/)の
hostnameという変数にホスト名を記述したので、次にsocket.gethostbyname()でホスト名をIPv4形式のアドレス(IPアドレス)に変換します。
変換したIPアドレスをprint関数で出力します。
■実行
今回書いたスクリプトを「ip-address-acquisition.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、「157.7.44.180」という数字が取得されました。これがWebサイト(https://laboratory.kazuuu.net/)のIPアドレスになります。socketモジュールを使用しIPアドレスが取得できることが確認できました。
■他のホスト名(ドメイン名)からIPアドレスを検索する
では、次にsocketモジュールを使用しホスト名(ドメイン名)からIPアドレスを検索するスクリプトを書いていきます。
■コード
import socket domain1 = socket.gethostbyname('google.com') domain2 = socket.gethostbyname('yahoo.co.jp') print(domain1,domain2)
インポートでsocketモジュールを呼び出して、今回はdomain1という変数を作成し、その中にsocket.gethostbyname()と記述し、括弧内にホスト名(ドメイン名)を記述します。これでIPアドレスの取得ができます。
同じようにして、domain1という変数を作成し、その中にsocket.gethostbyname()と記述し、括弧内にIPアドレスを調べたいホスト名(ドメイン名)を記述します。今回はGoogle.comとYahoo!JapanのIPアドレスを検索してみます。
IPアドレスを出力するために、print関数で出力を行います。
■実行
今回のスクリプトを「search_ipaddress.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行してみると、今回指定した2つのホスト名(ドメイン名)のIPアドレスが出力されることを確認できました。
コメント