2016-10-20 3 views
1

REMOTE_ADDRHTTP_X_FORWARDED_FORを試しましたが、まだ動作していない問題があります。ユーザのIPアドレスが.txtファイルの場合はリダイレクト

基本的には、ユーザーIPは、私は何のIPが、その後google.comここ

にリダイレクトしない場合、ユーザーは、cnn.comにリダイレクトされるようにしたいテキストファイルで発見された場合には、中に私のIPで動作していないコードがありますファイル:

<?php 

$iplist = @file("ip.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
$iparray = in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $iplist); 
//$iparray = in_array($_SERVER["REMOTE_ADDR"], $iplist); 

//###if ?test= is not empty 
if (!empty($_GET["test"])){ 
     if($iparray){ 
      header("Location: http://cnn.com");die; 
     } 
} 
header("Location: http://google.com"); 

?> 

注:?私はちょうどif文の+は、コードの残りの部分を停止維持のフォーマットを維持したいと思います

をテストするとき、私は私のURLの末尾にテスト= 1を持っています可能であれば実行するからheader("Location: http://google.com");は実行されません。あなたのIPは、ファイル内にあり、ファイルパスが正しい場合

+0

ていますか? ($ _ SERVER ['REMOTE_ADDR']、$ _SERVER ["HTTP_X_FORWARDED_FOR"]、$ iplist);そして、ipが実際に内部にあるかどうかを確認してください) – Dekel

+0

if(in_array($ _ SERVER ['REMOTE_ADDR']、$ iplist )){ ヘッダー( "場所:http://cnn.com");ダイ; } else {ヘッダー( "場所:http://google.com"); die()} –

+0

@DuaneLortie '$ _SERVER ['REMOTE_ADDR']'の引用符はまったく必要ありません。 –

答えて

0

、これを試してください:あなたは、ファイル内のIPを持っていることを確認

if (false !== strpos(file_get_contents($filename), $ip_to_search)){ 
    // ip in the file 
} 
else { 
    // otherwise 
} 
+0

これはまた、部分一致に対して 'true'を与えます(' 1.2.3.1'はファイルにip '101.2.3.101'が存在すれば真となります)。 – Dekel

+0

@ Aleksey-Dubininテキストファイルを使用する解決策は何でしょうか?テキストファイル? –

+0

@Dekel、ええ、私はそのような状況について考えました。彼らはあまり頻繁ではありませんが、彼らの注意を受けなければなりません。 –

関連する問題