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