日本に割り当てられているIPアドレスを表示するpythonスクリプトを作った

2015年4月22日 0 投稿者: khws4v1

日本に割り当てられている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文の論理式に使えます。

ネットマスクの計算

ネットマスクの計算は面倒くさそうですが、実はそんなに難しくありません。

ダウンロードしてくるデータは↓のようになっています。

102443.230.52.0から1024個のIPアドレスが割り振られていることを示しており、ネットマスクは↓の計算式で出せます。

render

pythonではmathライブラリのlog関数で求められます。