日本に割り当てられているIPアドレスを表示するpythonスクリプトを作った
日本に割り当てられているIPアドレスを表示するpythonスクリプトを作りました。
http://ftp.apnic.net/stats/apnic/delegated-apnic-latestにどの国にどんなIPアドレスが割り当てられているかがあるので、そこから取得します。
urllib2
pythonでhttpでファイルをダウンロードするのにはurllib2を使いました。
ダウンロードするなら↓のように書くだけで出来てしまいます。
HTTPのエラーが発生すると例外(urllib2.HTTPError
)が発生するのでexcept
しておきましょう。
reason
でエラーの原因が文字列で、code
でHTTPステータスコードが取得できます。
レスポンスの中身はread
で取得できます。
string
split
string.split()
は文字列を分割する関数です。
↓のようにすることで複数行の文字列を1行づつ処理できます。
count
string.count()
は文字列の中に指定の文字(列)がいくつ含まれているかを調べる関数です。
1つも含まれていなければ0を返します。
pythonでは0はfalseを表すので、そのままif文の論理式に使えます。
ネットマスクの計算
ネットマスクの計算は面倒くさそうですが、実はそんなに難しくありません。
ダウンロードしてくるデータは↓のようになっています。
1024
は43.230.52.0
から1024個のIPアドレスが割り振られていることを示しており、ネットマスクは↓の計算式で出せます。
pythonではmathライブラリのlog関数で求められます。