Genom IP-adressen till en besökare på din webbplats kan du ta reda på mycket om honom - land, stad, namn och e-postadress för internetleverantören etc. Men huvudvärdet är att IP: n kan fungera som ett besökar-ID för skript på serversidan. Nedan beskrivs hur du kan bestämma IP-adressen med PHP.
Det är nödvändigt
Grundläggande kunskaper i PHP
Instruktioner
Steg 1
Använd getenv-funktionen för att extrahera IP-adressen från rubrikerna som skickas till webbläsarens begäransserver. Den läser de angivna värdena från miljövariablerna. En variabel med namnet REMOTE_ADDR används för att lagra besökarens IP-adress. Klienten kan dock använda en proxyserver, i vilket fall variabeln innehåller dess adress och inte den du vill ha. Du kan ta reda på att webbsurfaren använder en mellanliggande IP genom att titta på miljövariabeln HTTP_VIA. Alla adresser till proxyservrarna som är inblandade i kedjan placeras i den, åtskilda av kommatecken. Mellanservrar måste placera besökarens adress i en variabel som heter HTTP_X_FORWARDED_FOR, men detta beror helt på proxyinställningarna. Detta innebär att för att täcka så många möjligheter att bestämma IP-adressen som möjligt, måste du kontrollera innehållet i minst tre variabler: REMOTE_ADDR, HTTP_X_FORWARDED_FOR och helst
Steg 2
Du kan kombinera att kontrollera alla tre variablerna till en rad PHP-kod, till exempel så här:
$ ipAddr = getenv ('HTTP_CLIENT_IP') eller $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') eller $ ipAddr = getenv ('REMOTE_ADDR');
Efter att ha erhållit IP-adressens värde på detta sätt är det lämpligt att rensa den från eventuella snedvridningar och onödiga tecken. Du kan använda ett reguljärt uttryck för detta:
$ ipAddr = trimma (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
Steg 3
Det återstår att kombinera båda kodraderna i en funktion:
funktion getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') eller $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') eller $ ipAddr = getenv ('REMOTE_ADDR');
returtrim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}