携帯ゲートウェイのIPアドレスのチェック

はじめに
きっかけはこの記事
Perlで実装されてるので、PHPでも実装してみよう、と。

まずは、PerlモジュールのNet::CIDR::MobileJPと同等のものを作ります。

Net::CIDR::MobileJPの機能と実装の解析
Net::CIDR::MobileJPのうち、ゲートウェイのIPアドレスのリスト化に必要な機能は、
  • 各キャリアのHPからゲートウェイのIPアドレス一覧の記述されているページを取得
  • ページを解析してIPアドレスとネットマスクのリストを作成
なので、
実装はfileとpreg_match_allでそのままできそうです。

ダウンロード

MobileGW 0.1

※PHP 5.1.6(FreeBSD)とPHP 5.2.3(Windows)のCLI版で動作確認をしています。
※動作確認は、解凍後のフォルダにあるcheck.phpを実行してください。
※file()関数でURLへのアクセスを行っているので、php.iniのallow_url_fopenがOnになっている必要があります。
※キャリアのゲートウェイIP取得のURL及び記述方法が変更される場合があるので、正しく動作しなくなることがあります。

データの比較と保存
ゲートウェイIPアドレスが取得できたら、次に必要なのはデータの比較と保存です。

保存に関しては、
  • キャリア毎にファイルを持つ
  • 過去の保存データは履歴ファイルとして残しておく
ことにします。

比較して出力するデータは、
  • 最新状態のリスト
  • 削除されたIPアドレスレンジのリスト
  • 追加されたIPアドレスレンジのリスト
を作成します。

比較に際しては、比較対照のデータ(過去と現在のGWIPリスト)を配列に入れておけば、array_intersectとarray_diffで実装できます。


ダウンロード

MobileGW 0.2

※PHP 5.1.6(FreeBSD)とPHP 5.2.3(Windows)のCLI版で動作確認をしています。
※動作確認は、解凍後のフォルダにあるcheck.phpを実行してください。
※file()関数でURLへのアクセスを行っているので、php.iniのallow_url_fopenがOnになっている必要があります。
※キャリアのゲートウェイIP取得のURL及び記述方法が変更される場合があるので、正しく動作しなくなることがあります。


戻る

Copyright (C) 2006 N.S.WORKs All Rights Reserved.