0

2 つの異なる方法を使用して、1 つの Web サイト (www.website.com) から IP アドレスを取得しようとしています。

www.website.com では$_SERVER['REMOTE_ADDR']、www.website.com の IP アドレスを使用して www.website2.com に送信します。次に、gethostbyname("www.website.com")on www.website2.com を使用して www.website.com の IP アドレスを検索し、両方を比較しましたが、何らかの理由で同じではありません。

IP アドレスが互いに異なるのはなぜですか?

4

2 に答える 2

1

$_SERVER['REMOTE_ADDR']は、スクリプトをホストするサーバーではなく、HTTP 要求を行うクライアントの IP アドレスを示します (これは に保持され$_SERVER['SERVER_ADDR']ます)。

于 2013-04-07T17:36:10.740 に答える
-1

HTTP_CLIENT_IPこれは、およびからの IP も考慮します。HTTP_X_FORWARDED_FOR

/**
 * getVisitorIP
 *
 * Gets visitor IP address
 *
 * @return string Visitor IP address
 */
public function getVisitorIP() {
    $ip = $_SERVER['REMOTE_ADDR'];      
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    return $ip;
}
于 2013-04-07T17:42:13.090 に答える