Hoe Het Ip . Van De Klant Te Achterhalen

Inhoudsopgave:

Hoe Het Ip . Van De Klant Te Achterhalen
Hoe Het Ip . Van De Klant Te Achterhalen

Video: Hoe Het Ip . Van De Klant Te Achterhalen

Video: Hoe Het Ip . Van De Klant Te Achterhalen
Video: How to find someones address with their IP (educational purposes only!) 2024, April
Anonim

Door het IP-adres van een bezoeker van uw site, kunt u heel wat over hem te weten komen - land, stad, naam en e-mailadres van de internetprovider, enz. Maar de belangrijkste waarde is dat het IP kan dienen als bezoekers-ID voor server-side scripts. Hieronder wordt beschreven hoe u het IP-adres kunt bepalen met behulp van PHP.

Hoe het ip. van de klant te achterhalen
Hoe het ip. van de klant te achterhalen

Het is nodig

Basiskennis van PHP

instructies:

Stap 1

Gebruik de getenv-functie om het IP-adres te extraheren uit de headers die naar de browserverzoekserver zijn verzonden. Het leest de opgegeven waarden uit de omgevingsvariabelen. Een variabele genaamd REMOTE_ADDR wordt gebruikt om het IP-adres van de bezoeker op te slaan. De client kan echter een proxyserver gebruiken, in welk geval de variabele zijn adres zal bevatten en niet het gewenste adres. U kunt erachter komen dat de websurfer een tussenliggend IP-adres gebruikt door te kijken naar de omgevingsvariabele HTTP_VIA. Alle adressen van de proxyservers die bij de keten betrokken zijn, worden erin geplaatst, gescheiden door komma's. Tussenservers moeten het adres van de bezoeker in een variabele met de naam HTTP_X_FORWARDED_FOR plaatsen, maar dit hangt volledig af van de proxy-instellingen. Dit betekent dat om zoveel mogelijk mogelijkheden voor het bepalen van het IP-adres te dekken, u de inhoud van ten minste drie variabelen moet controleren: REMOTE_ADDR, HTTP_X_FORWARDED_FOR en bij voorkeur

Stap 2

U kunt het controleren van alle drie de variabelen combineren in één regel PHP-code, bijvoorbeeld als volgt:

$ ipAddr = getenv ('HTTP_CLIENT_IP') of $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') of $ ipAddr = getenv ('REMOTE_ADDR');

Nadat de waarde van het IP-adres op deze manier is verkregen, is het raadzaam om het te ontdoen van mogelijke vervormingen en onnodige tekens. U kunt hiervoor een reguliere expressie gebruiken:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Stap 3

Het blijft om beide regels code in één functie te combineren:

functie getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') of $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') of $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Aanbevolen: