socketモジュールを使用しPythonでWebサイトのIPアドレスを取得する

socketモジュールを使用しPythonでWebサイトのIPアドレスを取得してみます。

WebサイトのIPアドレスを取得する場合は、Webサイトのホスト名がわかっていると、socketモジュールを使用し簡単にIPアドレスが取得できます。

ホスト名とはYahoo!Japanであれば「yahoo.co.jp」がホスト名(名前・アドレス)となります。

今回使用するsocketモジュールは、Pythonの標準ライブラリとなっていますので、事前にインストールする必要はありません。

■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アドレスが出力されることを確認できました。

コメント

タイトルとURLをコピーしました