2010-07-30

pythonさんでIPアドレス帯からキャリアを判別する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
pythonさんでキャリアを判別するためにIPアドレス帯の取得を以下を参考にさせていただいています。
http://d.hatena.ne.jp/tomisima/20070903/1188836400

こちらは各キャリアの利用IPアドレス紹介ページをパースすることで取得しています。
こちらで紹介しているDocomoをパースする部分は
return [ip for ip in re.findall(r'<li>([\d\./]+)%lt;/li>', content, re.M)]
となっているのですが、時折Docomoさんのページでは、
  • 202.229.176.0/24 (2010年7月上旬に追加予定)


  • のようにliタグの間にIPアドレス情報以外の文字が入っているとその部分は取得されません。

    なので以下のように私はしてみています。
    return [ip for ip in re.findall(r'<li>([\d\.]+/[\d]+).*</li>', content, re.M)]

    これで文字が入っていても取得できます。
    ただし未来の追加の部分もとってしまったりします。

    この取得したIPアドレス帯情報を利用してキャリア判別をしています。
    コメントを投稿