 |
 |
|
 |
はじめに |
|
 |
きっかけはこの記事
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及び記述方法が変更される場合があるので、正しく動作しなくなることがあります。
|
 |
戻る
|