Ved IP-adressen til en besøgende på dit websted kan du finde ud af meget om ham - land, by, navn og e-mail-adresse på internetudbyderen osv. Men den vigtigste værdi er, at IP'en kan fungere som et gæst-id til scripts på serversiden. Nedenfor er beskrevet, hvordan du kan bestemme IP-adressen ved hjælp af PHP.
Er det nødvendigt
Grundlæggende viden om PHP
Instruktioner
Trin 1
Brug getenv-funktionen til at udtrække IP-adressen fra de overskrifter, der sendes til browseranmodningsserveren. Den læser de angivne værdier fra miljøvariablerne. En variabel med navnet REMOTE_ADDR bruges til at gemme den besøgendes IP-adresse. Klienten kan dog bruge en proxyserver, i hvilket tilfælde variablen indeholder dens adresse og ikke den, du ønsker. Du kan finde ud af, at websurferen bruger en mellemliggende IP ved at se på miljøvariablen kaldet HTTP_VIA. Alle adresser på proxyserverne, der er involveret i kæden, er placeret i den adskilt med kommaer. Mellemservere skal placere den besøgendes adresse i en variabel med navnet HTTP_X_FORWARDED_FOR, men det afhænger helt af proxyindstillingerne. Dette betyder, at for at dække så mange muligheder for at bestemme IP-adressen som muligt, skal du kontrollere indholdet af mindst tre variabler: REMOTE_ADDR, HTTP_X_FORWARDED_FOR og helst
Trin 2
Du kan kombinere kontrol af alle tre variabler i en linje med PHP-kode, for eksempel på denne måde:
$ ipAddr = getenv ('HTTP_CLIENT_IP') eller $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') eller $ ipAddr = getenv ('REMOTE_ADDR');
Efter at have opnået IP-adresseens værdi på denne måde, tilrådes det at rydde den fra mulige forvridninger og unødvendige tegn. Du kan bruge et regulært udtryk til dette:
$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
Trin 3
Det er fortsat at kombinere begge kodelinjer i en funktion:
funktion getIP () {
$ ipAddr = getenv ('HTTP_CLIENT_IP') eller $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') eller $ ipAddr = getenv ('REMOTE_ADDR');
retur trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));
}