PHP で実際の IP を取得する方法
インターネットで多くのコードを試しましたがうまくいきませんでしたが、ip138 では毎回実際の IP を表示できます。特に皆さんに助けを求めています。
たとえば、通常の PHP を使用して取得した私の IP アドレスは次のとおりです: 60.55.8.229 - 浙江寧波
しかし、ip38.com で取得した私の IP アドレスは [42.196.192.67] 送信元: 上海万里の長城ブロードバンド
ip138が正しいです。
これは、私が病院でテストしたときも同様でした。私の PHP コードで取得した IP は、浙江省杭州
でした。
しかし、ip138 は私の本当の IP を取得できます、上海交通大学
現在使用している PHP コードは次のとおりです:
function GetIP(){ <br /> if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) <br /> $ip = getenv("HTTP_CLIENT_IP"); <br /> else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) <br /> $ip = getenv("HTTP_X_FORWARDED_FOR"); <br /> else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) <br /> $ip = getenv("REMOTE_ADDR"); <br /> else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) <br /> $ip = $_SERVER['REMOTE_ADDR']; <br /> else <br /> $ip = "unknown"; <br /> return($ip); <br /> } <br /> echo GetIP();
Function curIp(){<br /> $ip='';<br /> IF(Getenv('HTTP_CLIENT_IP') And StrCaseCmp(Getenv('HTTP_CLIENT_IP'),'unknown')){<br /> $ip=Getenv('HTTP_CLIENT_IP');<br /> }ElseIF(Getenv('HTTP_X_FORWARDED_FOR') And StrCaseCmp(Getenv('HTTP_X_FORWARDED_FOR'),'unknown')){<br /> $ip=Getenv('HTTP_X_FORWARDED_FOR');<br /> }ElseIF(Getenv('REMOTE_ADDR')And StrCaseCmp(Getenv('REMOTE_ADDR'),'unknown')){<br /> $ip=Getenv('REMOTE_ADDR');<br /> }ElseIF(isset($_SERVER['REMOTE_ADDR']) And $_SERVER['REMOTE_ADDR'] And StrCaseCmp($_SERVER['REMOTE_ADDR'],'unknown')){<br /> $ip=$_SERVER['REMOTE_ADDR'];<br /> }Else{<br /> $ip='127.0.0.1';<br /> }<br /> Return $ip;<br /> }