Sådan Finder Du Ud Af Klientens Ip

Indholdsfortegnelse:

Sådan Finder Du Ud Af Klientens Ip
Sådan Finder Du Ud Af Klientens Ip

Video: Sådan Finder Du Ud Af Klientens Ip

Video: Sådan Finder Du Ud Af Klientens Ip
Video: How to detect and get user or client's IP address with PHP 2024, November
Anonim

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.

Sådan finder du ud af klientens ip
Sådan finder du ud af klientens ip

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

}

Anbefalede: