Inleiding tot IP-adres

Om 'IP-adres in PHP ophalen' te leren, zullen we eerst het IP-adres bestuderen. Een IP-adres of een Internet Protocol-adres is een adres dat een numeriek adres of label is dat elk systeem of apparaat verbonden met een netwerk heeft. Het IP-adres wordt aan elk dergelijk apparaat toegewezen. Deze apparaten gebruiken internetprotocol voor elk type communicatie.

IP-versie

Onderstaande punten verklaren IP-versie:

  • Een IP-versie wordt gedefinieerd volgens het bit van het internetprotocollabel. IPv4, een eerdere versie, definieert bijvoorbeeld een 32-bit nummer internetprotocoladres. Met de groei van het internet ontstond IPv6, dat een 128-bit IP-nummer definieert. IPv6 wordt sinds 1995 tot vandaag gebruikt. Internet Protocol-adres is geschreven in de voor de mens begrijpelijke taal. Een voorbeeld van IPv4 is als volgt, 170.17.260.2 en een voorbeeld voor IPv6 is 2001: db8: 2: 1434: 1: 587: 5: 2.
  • De ruimte verkregen door internetprotocoladressen wordt wereldwijd beheerd. Een register genaamd Internet Assigned Numbers Authority samen met de andere vijf regionale registers maakt ruimtebeheer voor internetprotocoladressen mogelijk. De IANA is verantwoordelijk voor het toewijzen en beheren van ruimtes met internetprotocoladressen aan alle eindgebruikers en andere internetproviders in hun aangewezen gebieden of gebieden. Op dezelfde manier krijgen alle apparaten die zijn aangesloten op een netwerk van een internetprovider een uniek internetprotocoladres.
  • Er zijn statische internetprotocoladressen die niet vaak veranderen, ze worden aan de servers verstrekt. De internetproviders bieden een specifiek en uniek internetprotocoladres aan een machine die een modem gebruikt. Dat IP-adres is uniek voor een sessie en kan veranderen voor de volgende sessie.

Identificeren en retourneren van IP-adres in PHP

Om veiligheidsredenen verzamelen de sites de IP-adressen van de bezoekers van hun sites. Er is een gemakkelijke manier om dit adres in PHP te krijgen. Er is een specifieke array in PHP die het IP-adres van uw machine helpt en retourneert. Een array staat bekend als '$ _SERVER'. Het bevat informatie over de paden, headers en scriptlocaties. De webserver maakt de vereiste informatie voor de $ _SERVER-array. Soms maakt of levert de server niet alle informatie die de array vereist, ze kunnen er iets van weglaten. Er is dus een andere reeks die in dergelijke gevallen kan worden gebruikt. Het is geschreven als 'SERVER_ADDR'. Deze array retourneert het IP-adres van de server waaronder het script wordt uitgevoerd.

Methoden Gebruik om IP-adres in PHP te krijgen

Hieronder is het voorbeeld dat wordt gebruikt om een ​​IP-adres in php te krijgen:

Voorbeelden # 1

De eenvoudigste manier is om $ _SERVER te gebruiken met 'REMOTE_ADDR', het zal het IP-adres van de gebruiker retourneren die momenteel de pagina bekijkt.

  • Voorbeeld met ('REMOTE_ADDR') om het IP-adres van de server in PHP te identificeren.

Code:

<_?php
echo 'User IP - '.$_SERVER('REMOTE_ADDR');
?>

Output:

Voorbeeld 2

Een andere methode, 'SERVER_ADDR' genaamd, die ook wordt gebruikt om het IP-adres van de server op te halen.

  • Voorbeeld met ('SERVER_ADDR') om het IP-adres van de server in PHP te identificeren.

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";
?>

Output:

Verklaring van het bovenstaande programma: De bovenstaande voorbeeldmatrix ($ _SERVER) is handig als de machine niet is verbonden via een proxy. Als de machine is verbonden met internet via of via de proxyserver, retourneert $ _SERVER ('REMOTE_ADDR') in PHP niet het juiste IP-adres. Het retourneert alleen het IP-adres van de proxyserver en van de computer van de gebruiker of de client. In deze situatie wordt een andere methode gebruikt om het juiste adres op te halen.

Voorbeeld 3

Het volgende voorbeeld wordt gebruikt om het juiste en echte IP-adres te retourneren, zelfs als de machine zich verbergt achter een proxyserver. Het gebruikt een extra paar SERVER-variabelen die beschikbaar zijn om het exacte IP-adres van het systeem of de machine van de client te verkrijgen. Ze staan ​​bekend als HTTP_CLIENT_IP en HTTP_X_FORWARDED_FOR.

  • Voorbeeld met ('HTTP_CLIENT_IP') en ('HTTP_X_FORWARDED_FOR') om het IP-adres van de server in PHP te identificeren.

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();
?>

Output:

Als men de stroom van acties van de bovenstaande code moet begrijpen, kan men voor hetzelfde naar het volgende stroomschema verwijzen.

Verklaring van het bovenstaande programma: het bovenstaande voorbeeld om het IP-adres op te halen gebruikt twee variabelen ('HTTP_CLIENT_IP') en ('HTTP_X_FORWARDED_FOR'). In het programma doen we onze eerste poging om het direct van de machine te halen met HTTP_CLIENT_IP. Als dat niet beschikbaar is, proberen we voor 'doorgestuurd voor' IP met HTTP_X_FORWARDD_FOR. Wanneer beide voorwaarden nietig zijn, proberen we het IP-adres te verkrijgen met behulp van de variabele REMOTE_ADDR.

Punten om te onthouden

Hieronder moeten de punten worden onthouden om een ​​IP-adres in php te krijgen:

1. Dat toen we de bovenstaande code uitvoerden, het geretourneerde IP-adres wordt weergegeven als: 1. Dit staat bekend als een loopback-adres dat in feite wordt weergegeven als 127 keer nullen gevolgd door een 1 dat is (0000 … 127 keer … .1). Als we het willen opschrijven, wordt het geschreven als:

2. Maar in IPv6 kunnen we dit grote label in een korte vorm vertegenwoordigen. Dus als er allemaal nullen in een enkel blok staan, kan deze worden vervangen door een enkele nul. Dus wanneer de bovenstaande regel wordt gevolgd, wordt het: 0: 0: 0: 0: 0: 0: 0: 0001;

3. Nogmaals, de nullen kunnen worden geëlimineerd en we hebben nog: 0001

4. Die opnieuw wordt gereduceerd tot ' :: 1 ', dus de uitvoer.

Verklaring van de bovenstaande code: als ze zijn gemaakt om te worden uitgevoerd, geven ze mogelijk geen uitvoer of geven ze een runtime-fout terug, omdat privédomeinen hun internetprotocoladressen niet opgeven. Als de bovenstaande codes worden uitgevoerd op een lokale server of een lokale host, zoals we een WAMP-server hebben gebruikt, levert deze een uitvoer volgens de IP-versie, dat wil zeggen, als het een IPv4 is, zal het internetprotocoladres weergegeven als '127: 0: 0: 1' terwijl, als het een IPv6 is, het internetprotocoladres wordt weergegeven zoals hierboven, dat het, ':: 1'

Aanbevolen artikelen

Dit is een gids voor IP-adres ophalen in PHP. Hier bespreken we het identificeren van IP-adres, methoden in IP-adres en punten die moeten worden onthouden in IP-adres. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie -

  1. PHP-databaseverbinding
  2. Wat is TCP / IP?
  3. Socket programmeren in PHP
  4. Palindroom in PHP
  5. Palindrome in C ++
  6. Palindrome in JavaScript
  7. Top 12 vergelijking van Mac versus IP-adressen
  8. Socket programmeren in Python
  9. Wat is IPv4?