Heim >Backend-Entwicklung >PHP-Problem >So erhalten Sie die Client-IP-Adresse in PHP

So erhalten Sie die Client-IP-Adresse in PHP

(*-*)浩
(*-*)浩Original
2019-09-30 11:54:366166Durchsuche

So erhalten Sie die Client-IP-Adresse in PHP

So erhalten Sie die Client-IP-Adresse in PHP

1. Wenn kein Proxyserver verwendet wird

REMOTE_ADDR = Client-IP HTTP_X_FORWARDED_FOR = Kein Wert oder wird nicht angezeigt (empfohlenes Lernen: PHP-Video-Tutorial)

$ip = $_SERVER['REMOTE_ADDR'];

2. Transparenten Proxy verwenden

REMOTE_ADDR = Letzte Proxyserver-IP

HTTP_X_FORWARDED_FOR = Echte Client-IP (bei der Weiterleitung über mehrere Proxyserver ist dieser Wert ähnlich: 221.5.252.160, 203.98.182.163, 203.129.72.215)

Diese Art von Proxy sendet auch die echte IP des Kunden an das anfragende Objekt und kann die echte IP nicht verbergen.

$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

3. Verwenden Sie einen gewöhnlichen anonymen Proxyserver

REMOTE_ADDR = Letzte Proxyserver-IP

HTTP_X_FORWARDED_FOR = Proxyserver-IP ( Beim Durchlaufen mehrerer Proxyserver ist dieser Wert ähnlich: 203.98.182.163, 203.98.182.163, 203.129.72.215)

Dadurch wird die tatsächliche IP des Clients ausgeblendet, aber der Server weiß, dass der Client den Proxyserver durchläuft zugegriffen.

4. Verwenden Sie einen betrügerischen Proxyserver

REMOTE_ADDR = Proxyserver-IP

HTTP_X_FORWARDED_FOR = zufällige IP (Wenn Beim Durchlaufen mehrerer Proxyserver ist dieser Wert ähnlich: 220.4.251.159, 203.98.182.163, 203.129.72.215)

Der Server kann den Zugriff über den Proxyserver identifizieren, aber die gefälschte IP wird an den Zielserver gesendet.

5. Verwenden Sie einen Proxy mit hoher Anonymität

REMOTE_ADDR = Proxyserver-IP HTTP_X_FORWARDED_FOR = Kein Wert oder wird nicht angezeigt

Verwenden Sie dies: Wenn Sie einen Proxy verwenden, geben verschiedene Browser und verschiedene Geräte unterschiedliche IP-Header-Informationen zurück, sodass der von PHP mithilfe von $_SERVER["REMOTE_ADDR"] und $_SERVER["HTTP_X_FORWARDED_FOR"] erhaltene Wert ein Nullwert oder ein "unbekannter" sein kann " Wert.

PHP erhält den IP-Code wie folgt:

public function ip() {
    //strcasecmp 比较两个字符,不区分大小写。返回0,>0,<0。
    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
        $ip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
        $ip = getenv('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
    }
    $res =  preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';
    echo $res;
    //dump(phpinfo());//所有PHP配置信息
}

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die Client-IP-Adresse in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn