Maison  >  Article  >  développement back-end  >  Comment obtenir l'adresse IP d'un client dans Laravel 5 ?

Comment obtenir l'adresse IP d'un client dans Laravel 5 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-20 08:33:31693parcourir

How Do I Get a Client's IP Address in Laravel 5 ?

Comment obtenir l'adresse IP d'un client dans Laravel 5

Dans Laravel, récupérer l'adresse IP d'un client peut être une tâche facile. Dans le noyau PHP, l'accès à l'adresse IP se fait via $_SERVER["REMOTE_ADDR"]. Cependant, dans Laravel, cela peut ne pas capturer avec précision l'adresse IP du visiteur.

L'approche de Laravel

Laravel fournit une méthode dédiée pour obtenir l'adresse IP du client :

<code class="php">Request::ip();</code>

Cette méthode utilise en interne la fonction getClientIps de Symfony Request Object pour gérer le processus de récupération d'adresse IP.

Comment fonctionne getClientIps :

La méthode getClientIps suit un approche en plusieurs étapes :

  1. Validation du proxy de confiance : Elle vérifie si la demande provient d'un proxy de confiance en fonction des plages d'adresses IP de confiance configurées.
  2. Analyse des en-têtes : Sur la base des en-têtes de confiance spécifiés dans la configuration trustHeaders, il extrait les adresses IP des en-têtes Forwarded ou Client-IP.
  3. Création de chaîne IP : Il forme une chaîne d'adresses IP, y compris l'adresse IP d'origine de la demande, les en-têtes extraits et les proxys de confiance.
  4. Suppression des proxys non fiables :Toutes les adresses IP identifiées comme proxys de confiance sont éliminées de la chaîne.
  5. Récupération IP du client :La première adresse IP de la chaîne filtrée par proxy non fiable est identifiée comme l'adresse IP du client.
  6. Suppression de port : Il supprime toutes les informations de port de l'adresse IP du client par souci de cohérence.

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!

Déclaration:
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