Ved IP-adressen til en besøkende på nettstedet ditt, kan du finne ut ganske mye om ham - land, by, navn og e-postadresse til Internett-leverandøren, etc. Men hovedverdien er at IP-en kan fungere som en besøkende-ID for skripter på serversiden. Nedenfor er beskrevet hvordan du kan bestemme IP-adressen ved hjelp av PHP.
Det er nødvendig
Grunnleggende kunnskap om PHP
Bruksanvisning
Trinn 1
Bruk getenv-funksjonen for å trekke ut IP-adressen fra topptekstene som sendes til nettleserforespørselsserveren. Den leser verdiene som er spesifisert for det fra miljøvariablene. En variabel kalt REMOTE_ADDR brukes til å lagre besøkendes IP-adresse. Imidlertid kan klienten bruke en proxy-server, i hvilket tilfelle variabelen inneholder adressen, og ikke den du vil ha. Du kan finne ut at websurferen bruker en mellomliggende IP ved å se på miljøvariabelen kalt HTTP_VIA. Alle adressene til proxy-serverne som er involvert i kjeden er plassert i den, atskilt med komma. Mellomliggende servere må plassere besøkendes adresse i en variabel som heter HTTP_X_FORWARDED_FOR, men dette avhenger helt av proxy-innstillingene. Dette betyr at for å dekke så mange muligheter for å bestemme IP-adressen som mulig, må du sjekke innholdet av minst tre variabler: REMOTE_ADDR, HTTP_X_FORWARDED_FOR, og helst
Steg 2
Du kan kombinere å sjekke alle de tre variablene i en linje med PHP-kode, for eksempel slik:
$ ipAddr = getenv ('HTTP_CLIENT_IP') eller $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') eller $ ipAddr = getenv ('REMOTE_ADDR');
Etter å ha oppnådd IP-adresseens verdi på denne måten, anbefales det å fjerne den fra mulige forvrengninger og unødvendige tegn. Du kan bruke et vanlig uttrykk for dette:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
Trinn 3
Det gjenstår å kombinere begge kodelinjene i en funksjon:
funksjon getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') eller $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') eller $ ipAddr = getenv ('REMOTE_ADDR');
retur trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}