phpにて、ipアドレスによる処理分岐をする場合について
スクリプト設置環境
・php4 or php5
環境情報がザックリな書き方で問題がありましたら、補足させて頂きますので、その場合にはご忠告下さい。
今回、ipアドレスによる処理分岐を考えていますが、しようとしていることは、
「サイト管理者のアクセスカウントをしないようにしたい」
ということです。
つまり、アクセス者のIPがサイト管理者のIPと一致した場合には、
アクセスカウントをしないような分岐コードを書きたいわけです。
以下、3パターンを考えましたので、それをもとに質問をします。
よろしくお願い致します。
/////////////////////////////////////////////
$ip = $_SERVER['REMOTE_ADDR'];
//サイト管理者のIPアドレス:「xxx.xxx.x.xxx」とする。
//パターン:(A):preg_match による方法
if(preg_match("/xxx.xxx.x.xxx/",$ip)==0){
//$ip == "xxx.xxx.x.xxx" でなかった場合の処理
}
//パターン:(B):ereg による方法
if(ereg("xxx.xxx.x.xxx",$ip)==0){
//$ip == "xxx.xxx.x.xxx" でなかった場合の処理
}
//パターン:(C):問題ありな書き方
if($ip !== "xxx.xxx.x.xxx"){
//$ip == "xxx.xxx.x.xxx" でなかった場合の処理
}
/////////////////////////////////////////////
と、3パターンの方法を考えてみました。
質問は下記の(1)~(4)の4つです。
回答できるもののみの回答でも結構ですので、どうぞよろしくお願い致します。
(1)パターンAとBでは、どちらの方が処理が速いですか。
(2)パターンAまたはBにおいて、マッチしなかった場合の分岐の書き方を「==0」としていますが、「!」を使った方法など、他の書き方もありますか。
※「==0」→「==0」(念のため、見やすく書きますと。)
(3)パターンCは、不思議と正常に機能しない場合があるのですが、それはなぜでしょうか。あるファイルでは、このパターンCでも機能するのですが、別のファイルになると、この書き方では機能しないことがあります。それがとても不思議でなりません。また、こういった書き方(作法)は一般的に良くないのでしょうか。良くない明確な理由がありましたら教えて頂けると嬉しいです。
(4)上記の3パターン以外にも「ipアドレスによる処理分岐」の書き方はあるかと思いますが、オススメのものがありましたら教えて下さい。もし無い場合は、上記3パターンではどれがベストか教えて頂けると嬉しいです。
視点として、処理の確実性・安全性(バイナリセーフなどを意識)、処理速度(ページビュー快適性)を考慮して頂ければと思います。他に重要な視点がありましたら、そちらも併せて考慮して頂けると助かります。
以上、よろしくお願い致します。