Maison  >  Article  >  développement back-end  >  Obtenir l'adresse IP en PHP

Obtenir l'adresse IP en PHP

PHPz
PHPzoriginal
2024-08-29 13:07:16682parcourir

Pour apprendre « Obtenir l’adresse IP en PHP », nous étudierons d’abord l’adresse IP. Une adresse IP ou une adresse de protocole Internet est une adresse qui est une adresse numérique ou une étiquette que possède chaque système ou appareil connecté à un réseau. L'adresse IP est attribuée à chacun de ces appareils. Ces appareils utilisent le protocole Internet pour tout type de communication.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Version IP

Points ci-dessous Expliquez la version IP :

  • Une version IP est définie selon le bit du label du protocole internet. Par exemple, IPv4, qui est une version antérieure, définit une adresse de protocole Internet numérique de 32 bits. Avec la croissance d'Internet, IPv6 a vu le jour, définissant une étiquette IP numérique de 128 bits. IPv6 est utilisé depuis 1995 jusqu'à aujourd'hui. L'adresse du protocole Internet est écrite dans un langage compréhensible par l'homme. Un exemple d'IPv4 est le suivant, 170.17.260.2 et un exemple pour IPv6 est 2001:db8:2:1434:1:587:5:2.
  • L'espace acquis par les adresses de protocole internet est géré globalement. Un registre appelé Internet Assigned Numbers Authority ainsi que les cinq autres registres régionaux rendent possible la gestion de l'espace pour les adresses de protocole Internet. L'IANA est responsable de l'attribution et de la gestion des espaces d'adresses de protocole Internet à tous les utilisateurs finaux et autres fournisseurs Internet dans leurs zones ou territoires désignés. De même, tous les appareils connectés au réseau d’un fournisseur de services Internet se voient attribuer une adresse de protocole Internet unique.
  • Il existe des adresses de protocole Internet statiques qui ne changent pas souvent, elles sont fournies aux serveurs. Les fournisseurs de services Internet fournissent une adresse de protocole Internet spécifique et unique à une machine qui utilise un modem. Cette adresse IP est unique pour une session et peut changer pour la session suivante.

Identification et renvoi de l'adresse IP en PHP

Pour des raisons de sécurité, les sites collectent les adresses IP des visiteurs de leurs sites. Il existe un moyen simple d'obtenir cette adresse en PHP. Il existe un tableau spécifique en PHP qui aide et renvoie l'adresse IP de votre machine. Un tableau est appelé « $_SERVER ». Il contient des informations sur les chemins, les en-têtes et les emplacements des scripts. Le serveur Web crée les informations requises pour le tableau $_SERVER. Parfois, le serveur ne crée pas ou ne fournit pas toutes les informations requises par la baie, il peut en omettre certaines. Il existe donc un autre tableau qui peut être utilisé dans de tels cas. Il s’écrit « SERVER_ADDR ». Ce tableau renvoie l'adresse IP du serveur sous lequel le script est exécuté.

Méthodes utilisées pour obtenir une adresse IP en PHP

Ci-dessous l'exemple utilisé pour obtenir une adresse IP en php :

Exemples #1

Le moyen le plus simple est d'utiliser $_SERVER avec 'REMOTE_ADDR', il renverra l'adresse IP de l'utilisateur qui consulte actuellement la page.

  • Exemple d'utilisation de ['REMOTE_ADDR'] pour identifier l'adresse IP du serveur en PHP.

Code :

<?php
echo 'User IP - '.$_SERVER['REMOTE_ADDR'];
?>

Sortie :

Obtenir l'adresse IP en PHP

Exemple n°2

Une autre méthode, appelée 'SERVER_ADDR', qui est également utilisée pour récupérer l'adresse IP du serveur. 

  • Exemple d'utilisation de ['SERVER_ADDR'] pour identifier l'adresse IP du serveur en PHP.

Code :

<?php
// PHP program to retrieve server’s Internet Protocol address
// Creating a variable to store the server address
$ip_server = $_SERVER['SERVER_ADDR'];
// Displaying the retrieved address
echo "Server IP Address is: $ip_server";
?>

Sortie :

Obtenir l'adresse IP en PHP

Explication du programme ci-dessus : L'exemple de tableau ci-dessus [$_SERVER] est utile si la machine n'est pas connectée via un proxy. Si la machine est connectée à Internet via ou via le serveur proxy, $_SERVER['REMOTE_ADDR'] en PHP ne renvoie pas l'adresse IP correcte. Il renvoie simplement l’adresse IP du serveur proxy et de la machine de l’utilisateur ou du client. Dans cette situation, une autre méthode est utilisée pour récupérer la bonne adresse.

Exemple #3

L'exemple suivant est utilisé pour renvoyer l'adresse IP correcte et réelle même si la machine se cache derrière un serveur proxy. Il utilise une paire supplémentaire de variables SERVER disponibles pour obtenir l'adresse IP exacte du système ou de la machine du client. Ils sont connus sous le nom de HTTP_CLIENT_IP et HTTP_X_FORWARDED_FOR.

  • Exemple d'utilisation de ['HTTP_CLIENT_IP'] et ['HTTP_X_FORWARDED_FOR'] pour identifier l'adresse IP du serveur en PHP.

Code :

<?php
function RetrieveUserIP()
{
if(!empty($_SERVER['HTTP_CLIENT_IP']))
{
$address=$_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$address=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$address=$_SERVER['REMOTE_ADDR'];
}
return $address;
}
echo 'User IP Address is'.RetrieveUserIP();
?>

Sortie :

Obtenir l'adresse IP en PHP

Si l'on veut comprendre le flux d'actions du code ci-dessus, on peut se référer à l'organigramme suivant pour cela.

Obtenir l'adresse IP en PHP

Explication du programme ci-dessus : L'exemple ci-dessus pour récupérer l'adresse IP utilise deux variables, ['HTTP_CLIENT_IP'] et ['HTTP_X_FORWARDED_FOR']. Dans le programme, nous faisons notre première tentative pour le retirer directement de la machine en utilisant HTTP_CLIENT_IP. Si cela n’est pas disponible, nous essayons l’IP « transféré pour » en utilisant HTTP_X_FORWARDD_FOR. Lorsque les deux conditions deviennent nulles, nous essayons d'obtenir l'adresse IP à l'aide de la variable REMOTE_ADDR.

Points à retenir

Ci-dessous les points à retenir pour obtenir une adresse IP en php :

1. Lorsque nous avons exécuté le code ci-dessus, l'adresse IP renvoyée s'affiche sous la forme ::1. C'est ce qu'on appelle une adresse de bouclage qui est en fait représentée par 127 fois des zéros suivis d'un 1 soit (0000…. 127 fois….1). Si nous devons l'écrire, il s'écrira ainsi :

Obtenir l'adresse IP en PHP

2. Mais en IPv6, nous pouvons représenter ce grand label sous une forme courte. Ainsi, s’il y a tous des zéros dans un seul bloc, il peut être remplacé par un seul zéro. Ainsi, lorsque la règle ci-dessus est suivie, cela devient : 0:0:0:0:0:0:0:0001;

Obtenir l'adresse IP en PHP

3. Encore une fois, les zéros peuvent être éliminés et il nous reste :: 0001

Obtenir l'adresse IP en PHP

4. Ce qui est à nouveau réduit à « : : 1 », d'où la sortie.

Explication du code ci-dessus : S'ils sont conçus pour s'exécuter, ils risquent de ne donner aucun résultat ou de renvoyer une erreur d'exécution car les domaines privés ne fournissent pas leurs adresses de protocole Internet. Alors que si les codes ci-dessus sont exécutés sur un serveur local ou un hôte local, comme nous avons utilisé un serveur WAMP, il fournira une sortie en fonction de la version IP, c'est-à-dire que s'il s'agit d'un IPv4, l'adresse du protocole Internet sera affiché comme '127:0:0:1' tandis que s'il s'agit d'un IPv6, l'adresse du protocole Internet sera affichée comme ci-dessus, c'est-à-dire ':: 1'

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