2

クライアント A からサーバー B へのリクエストを仲介しています。クライアント A は電話またはラップトップ コンピューターです。サーバー B はクライアント A の IP アドレスを知りたがっていますが、 で探してい$_SERVER['REMOTE_ADDR']ます。私はサーバー B にアクセスしているため、サーバー B の「間違った」値を$_SERVER['REMOTE_ADDR']取得しています。サーバーの IP アドレスを取得しています。$_SERVER['REMOTE_ADDR']クライアントがエンドポイントにアクセスしたときにサーバー B がクライアントの IP アドレスを認識できるようにするには、どうすればよいですか?

4

2 に答える 2

5

これは、PHPスクリプトでオーバーライドできないレイヤーで発生しています。ヘッダーは実際のX-Forwarded-ForクライアントIPを中継するために存在しますが、リモートサーバーはこの簡単になりすましの値をサポートする必要があります。

$header = "X-Forwarded-For: {$_SERVER['REMOTE_ADDR']}, {$_SERVER['SERVER_ADDR']}";
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array($header));
于 2012-10-03T01:10:27.783 に答える
0

編集:以前の回答は完璧です。これは、独自の dev-ip がクライアントの統計に干渉している場合にのみ適用されます。

詳細情報がない場合、最も基本的なレベルで、統計/データ/ログに含まれないように、独自の「開発者 IP」を削除する必要があります...

あなたの IP は、問題のサーバーとは異なる場合があります。

<?php 

$dev_ip = '217.12.14.14' // your dev IP address

if ($_SERVER['REMOTE_ADDR'] == $dev_ip){
    // do nothing
} else {
    // do|show|log something
}

これは、(静的 IP ではなく) 動的 IP アドレスの割り当てを考慮していません。動的 IP は ISP によって割り当てられることが多く、これがさらに問題を引き起こします。

于 2012-10-03T01:19:41.977 に答える