Oftast används en besökares IP-adress för att identifiera honom. Men förutom detta, med hjälp av IP, kan du få mycket ytterligare information om besökaren - till exempel ta reda på hans internetleverantör och geografiska plats. I praktiken används PHP-skript på serversidan oftast för att extrahera IP-adresser från förfrågningsrubrikerna som skickas av webbläsaren.
Det är nödvändigt
Grundläggande kunskaper i PHP
Instruktioner
Steg 1
Använd PHP: s inbyggda getenv-funktion för att läsa IP-adresser från den superglobala miljövariabeln. I det enklaste fallet räcker det att läsa variabeln REMOTE_ADDR. Motsvarande del av PHP-kod kan se ut så här: $ userIP = getenv ('REMOTE_ADDR');
Steg 2
Förutom variabeln REMOTE_ADDR som skickas i begäran, kontrollera variablerna HTTP_VIA och HTTP_X_FORWARDED_FOR. Om besökaren använder en proxyserver måste mellanadressen registreras i båda variablerna - i både HTTP_VIA och REMOTE_ADDR. I det här fallet kan du försöka ta reda på besökarens verkliga IP via HTTP_X_FORWARDED_FOR - proxyservern måste lägga in den ursprungliga adressen i den. Detta görs dock inte alltid, och användaren har möjlighet att välja en "ogenomskinlig" proxyserver som inte överför den ursprungliga IP-adressen för den besökare som skickade begäran. I vilket fall som helst bör du använda så många sätt som möjligt för att få den ursprungliga IP-adressen i din kod genom att lägga till en check för
Steg 3
Sammanfoga i en rad PHP-kod en sekventiell kontroll av tre miljövariabler, som kan innehålla besökarens ursprungliga IP-adress. Detta kan till exempel göras så här: $ userIP = getenv ('HTTP_CLIENT_IP') ELLER $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ELLER $ userIP = getenv ('REMOTE_ADDR');
Steg 4
Ta bort extra tecken och annat "skräp" från det resulterande IP-värdet som kan komma in i miljövariabler. Detta kan exempelvis göras med de inbyggda PHP-funktionerna TRIM och preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Steg 5
Kombinera all kod i en anpassad funktion så att du kan hänvisa till den istället för att upprepa kontroll- och rensningsraderna om och om igen i olika delar av dina PHP-skript. Till exempel så här: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') ELLER $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ELLER $ userIP = getenv ('REMOTE_ADDR');
RETURN TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}