Maison > Article > développement back-end > Obtenir l'adresse IP en PHP
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ésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Points ci-dessous Expliquez la version IP :
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é.
Ci-dessous l'exemple utilisé pour obtenir une adresse IP en php :
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.
Code :
<?php echo 'User IP - '.$_SERVER['REMOTE_ADDR']; ?>
Sortie :
Une autre méthode, appelée 'SERVER_ADDR', qui est également utilisée pour récupérer l'adresse IP du serveur.
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 :
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.
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.
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 :
Si l'on veut comprendre le flux d'actions du code ci-dessus, on peut se référer à l'organigramme suivant pour cela.
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.
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 :
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;
3. Encore une fois, les zéros peuvent être éliminés et il nous reste :: 0001
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!