Hur Man Får Reda På Klientens Ip

Innehållsförteckning:

Hur Man Får Reda På Klientens Ip
Hur Man Får Reda På Klientens Ip

Video: Hur Man Får Reda På Klientens Ip

Video: Hur Man Får Reda På Klientens Ip
Video: How To Know The People Visiting Your Site, Country, IP Address And Browser 2024, Maj
Anonim

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.

Hur man tar reda på kundens IP
Hur man tar reda på kundens IP

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

}

Rekommenderad: