Hvordan Finne Ut Klientens Ip

Innholdsfortegnelse:

Hvordan Finne Ut Klientens Ip
Hvordan Finne Ut Klientens Ip

Video: Hvordan Finne Ut Klientens Ip

Video: Hvordan Finne Ut Klientens Ip
Video: ДЕТИ ЛЕДИБАГ И СУПЕР-КОТА 😱 Сказки на ночь от Маринетт Miraculous Ladybug & Cat Noir in real life 2024, Kan
Anonim

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.

Hvordan finne ut klientens ip
Hvordan finne ut klientens ip

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

}

Anbefalt: