忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2024/11/23 04:52 |
PHP1-64:Pear::CheckIPでIPアドレスチェック

CheckIP 1.2.1 (stable)
http://pear.php.net/package/Net_CheckIP
CheckIP2 1.0.0RC2 (beta)
http://pear.php.net/package/Net_CheckIP2

Pear公式に登録されているPearパッケージは現時点で500ちょいですが、その中で最も役に立たないライブラリはどれかと言われたら、私はCheckIPを挙げます。

まあ、とりあえず使ってみましょう。

checkip.php 

1
2
3
4
5
6
7
8
<?php
    
    require_once('Net/CheckIP.php');
    
    $ret[]=Net_CheckIP::check_ip('192.168.0.1');
    $ret[]=Net_CheckIP::check_ip('192.168.0.256');
    
    var_dump($ret);

何をやっているかというと、IPアドレスが正しい形式かどうかチェックしています。
正しい形式というのがどの程度の正しさかというと、別に到達可能性をチェックしているわけでもなければIPv6に対応しているわけでもなくサブネットすら考慮しない、単なる形としてのIPアドレスです。
中身を見てみると.でexolodeして各値が0~255の間かチェックしてました。
で、数値のチェックにpreg_matchを使っていましたが、だったら最初から一発ですりゃいいのに。

そもそも標準関数だけで簡単に出来てしまうことをPear化する意味がわからない。


さて、あまりにしょっぱい内容だったせいかCheckIP2という後継パッケージが出ました。
今回はIPv6対応なんだろうな、IPv6の正規表現は確かに省略とかあって面倒だからなあ

checkip2.php
1
2
3
4
5
6
7
8
<?php
    
    require_once('Net/CheckIP2.php');
    
    $ret[]=Net_CheckIP2::check_ip('192.168.0.1');
    $ret[]=Net_CheckIP2::check_ip('192.168.1.256');
    
    var_dump($ret);

あれ?IPv6は?

>A package to determine if an IP (v4) is valid.

中を見てみたところ、コンストラクタと修飾子がくっついた以外全く同じでした。
なんだこれ。

 

PR


2009/04/03 15:03 | Comments(0) | TrackBack() | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<PHP1-65:オブジェクトに配列とforeachでアクセスする続き | HOME | PHP1-63:オブジェクトに配列でアクセスする>>
忍者ブログ[PR]