function getIp(){
$onlineip='';
if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')){
$onlineip=getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown')){
$onlineip=getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown')){
$onlineip=getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')){
$onlineip=$_SERVER['REMOTE _ADDR'];
}
$onlineip を返します。
}
$onlineip = getIp();
$ipinfo=json_decode(file_get_contents("http://ip.taabao.com/service/getIpInfo.php?ip=".$onlineip),true);// 将APIのjson格式解码保存到ipinfo变量
?>
<テーブル>
表示されるのは、すべての接続が同意されたソースであるかどうか? 使用する Web サーバーは中間にプロキシを通過しているかどうか?
クライアントの接続のそれぞれは異なるネットワーク プロバイダですか? 同じパブリック ネットワークの場合IP が送信された 2 人が同一の IP であるかどうかを確認します。 CMS に関係なく、そもそもIPの取得方法は厳密ではありません、それが今日まで流通し、今でも人々が使用しているとは予想していませんでした
IPの取得方法は厳密ではありません。そもそも、これが今日まで配布され、まだ人々に使用されているとは思いませんでした
まずは $_SERVER['REMOTE_ADDR'] を試してみてください。
あるいは、そのコード内のどの変数が最後に有効になったかを調べれば、問題が見つかるでしょう。これは、独自のサーバー ネットワーク構造にも関係します。まず、PHP マニュアルの「定義済み変数」セクションでこれらの環境変数の意味を理解する必要があります。たとえ他の人がそれを解決したとしても、あなたにとっては盲点になってしまうので、このようなコードをそのまま放り出すべきではありません。
そうですね、Web ページが静的だったので問題は解決しましたが、動的に変更したところ、テストは成功しました。