Maison > développement back-end > Problème PHP > Comment obtenir l'adresse IP du client en php

Comment obtenir l'adresse IP du client en php

(*-*)浩
Libérer: 2023-02-25 17:38:01
original
6174 Les gens l'ont consulté

Comment obtenir l'adresse IP du client en php

Comment obtenir l'adresse IP du client en php

1. Si un serveur proxy n'est pas utilisé

REMOTE_ADDR = IP client HTTP_X_FORWARDED_FOR = Aucune valeur ou non affiché (apprentissage recommandé : Tutoriel vidéo PHP)

$ip = $_SERVER['REMOTE_ADDR'];
Copier après la connexion

2. Utiliser un proxy transparent

REMOTE_ADDR = Dernière IP du serveur proxy

HTTP_X_FORWARDED_FOR = IP réelle du client (lors du passage par plusieurs serveurs proxy, cette valeur est similaire : 221.5.252.160, 203.98.182.163, 203.129.72.215)

Ce type de proxy enverra également la véritable adresse IP du client à l'objet demandeur et ne pourra pas masquer la véritable adresse IP.

$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
Copier après la connexion

3. Utiliser un serveur proxy anonyme ordinaire

REMOTE_ADDR = Dernière IP du serveur proxy

HTTP_X_FORWARDED_FOR = IP du serveur proxy ( Lors du passage par plusieurs serveurs proxy, cette valeur est similaire : 203.98.182.163, 203.98.182.163, 203.129.72.215)

Cela masque la véritable IP du client, mais le serveur saura que le client passe par le serveur proxy accédé.

4. Utiliser un serveur proxy trompeur

REMOTE_ADDR = IP du serveur proxy

HTTP_X_FORWARDED_FOR = IP aléatoire (Quand en passant par plusieurs serveurs proxy, cette valeur est similaire : 220.4.251.159, 203.98.182.163, 203.129.72.215)

Le serveur peut identifier l'accès via le serveur proxy, mais la fausse IP envoyée au serveur cible est .

5. Utiliser un proxy à haut anonymat

REMOTE_ADDR = IP du serveur proxy HTTP_X_FORWARDED_FOR = Aucune valeur ou non affiché

Utilisez ceci Lorsque vous utilisez différents proxys, différents navigateurs et différents appareils renverront différentes informations d'en-tête IP, donc la valeur obtenue par PHP en utilisant $_SERVER["REMOTE_ADDR"] et $_SERVER["HTTP_X_FORWARDED_FOR"] peut être une valeur nulle ou un "inconnu". " valeur.

PHP obtient le code IP comme suit :

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配置信息
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal