Oftest brukes IP-adressen til en besøkende for å identifisere ham. Men i tillegg til dette, ved hjelp av IP, kan du få mye tilleggsinformasjon om den besøkende - for eksempel finne ut internettleverandøren og geografiske plasseringen. I praksis brukes ofte PHP-skript på serversiden for å trekke ut IP-adresser fra forespørselsoverskriftene som sendes av nettleseren.
Det er nødvendig
Grunnleggende kunnskap om PHP
Bruksanvisning
Trinn 1
Bruk PHPs innebygde getenv-funksjon til å lese IP-adresser fra den superglobale miljøvariabelen. I det enkleste tilfellet vil det være nok å lese variabelen REMOTE_ADDR. Tilsvarende stykke PHP-kode kan se slik ut: $ userIP = getenv ('REMOTE_ADDR');
Steg 2
I tillegg til variabelen REMOTE_ADDR som sendes i forespørselen, må du sjekke variablene HTTP_VIA og HTTP_X_FORWARDED_FOR. Hvis den besøkende bruker en proxyserver, må mellomadressen registreres i begge variablene - i både HTTP_VIA og REMOTE_ADDR. I dette tilfellet kan du prøve å finne ut den virkelige IP-en til den besøkende gjennom HTTP_X_FORWARDED_FOR - proxy-serveren må legge den opprinnelige adressen i den. Dette gjøres imidlertid ikke alltid, og brukeren har muligheten til å velge en "ugjennomsiktig" proxy-server som ikke overfører den opprinnelige IP-adressen til den besøkende som sendte forespørselen. I alle fall bør du bruke så mange måter som mulig for å få den opprinnelige IP-adressen i koden din ved å legge til en sjekk for variabelen
Trinn 3
Sett sammen en linje med PHP-kode en sekvensiell sjekk av tre miljøvariabler som kan inneholde den besøkendes opprinnelige IP-adresse. Dette kan for eksempel gjøres slik: $ userIP = getenv ('HTTP_CLIENT_IP') ELLER $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ELLER $ userIP = getenv ('REMOTE_ADDR');
Trinn 4
Fjern ekstra tegn og annet "søppel" fra den resulterende IP-verdien som kan komme inn i miljøvariabler. Dette kan for eksempel gjøres ved å bruke de innebygde PHP-funksjonene TRIM og preg_replace: $ userIP = TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
Trinn 5
Kombiner all koden til en tilpasset funksjon slik at du kan referere til den i stedet for å gjenta sjekk- og oppryddingslinjene om og om igjen i forskjellige deler av PHP-skriptene. For eksempel slik: FUNCTION getUserIP () {
$ userIP = getenv ('HTTP_CLIENT_IP') ELLER $ userIP = getenv ('HTTP_X_FORWARDED_FOR') ELLER $ userIP = getenv ('REMOTE_ADDR');
RETUR TRIM (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ userIP));
}