Jak Zjistit IP Adresu Klienta

Obsah:

Jak Zjistit IP Adresu Klienta
Jak Zjistit IP Adresu Klienta

Video: Jak Zjistit IP Adresu Klienta

Video: Jak Zjistit IP Adresu Klienta
Video: Jak zjistit někoho IP ADRESU ? • CZ/SK TUTORIAL • [ Basic způsob - Grabify návod ] 2024, Listopad
Anonim

Podle IP adresy návštěvníka vašeho webu o něm zjistíte docela dost - zemi, město, jméno a e-mailovou adresu poskytovatele internetu atd. Hlavní hodnotou však je, že adresa IP může sloužit jako ID návštěvníka skriptů na straně serveru. Níže je popsáno, jak můžete zjistit IP adresu pomocí PHP.

Jak zjistit IP adresu klienta
Jak zjistit IP adresu klienta

Je to nutné

Základní znalost PHP

Instrukce

Krok 1

Chcete-li extrahovat adresu IP ze záhlaví odeslaných na server požadavku prohlížeče, použijte funkci getenv. Přečte zadané hodnoty z proměnných prostředí. Proměnná s názvem REMOTE_ADDR se používá k uložení adresy IP návštěvníka. Klient však může použít proxy server, v takovém případě bude proměnná obsahovat svou adresu, a ne tu, kterou chcete. Zjistíte, že webový surfař používá zprostředkující IP, když se podíváte na proměnnou prostředí s názvem HTTP_VIA. V něm jsou umístěny všechny adresy proxy serverů zapojených do řetězce, oddělené čárkami. Zprostředkující servery musí umístit adresu návštěvníka do proměnné s názvem HTTP_X_FORWARDED_FOR, ale to zcela závisí na nastavení serveru proxy. To znamená, že aby bylo možné pokrýt co nejvíce možností určení adresy IP, je třeba zkontrolovat obsah alespoň tří proměnných: REMOTE_ADDR, HTTP_X_FORWARDED_FOR a nejlépe

Krok 2

Kontrolu všech tří proměnných můžete zkombinovat do jednoho řádku kódu PHP, například takto:

$ ipAddr = getenv ('HTTP_CLIENT_IP') nebo $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') nebo $ ipAddr = getenv ('REMOTE_ADDR');

Po získání hodnoty IP adresy tímto způsobem je vhodné ji vyčistit od možných zkreslení a zbytečných znaků. K tomu můžete použít regulární výraz:

$ ipAddr = trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

Krok 3

Zbývá kombinovat oba řádky kódu do jedné funkce:

funkce getIP () {

$ ipAddr = getenv ('HTTP_CLIENT_IP') nebo $ ipAddr = getenv ('HTTP_X_FORWARDED_FOR') nebo $ ipAddr = getenv ('REMOTE_ADDR');

return trim (preg_replace ('# ^ ([^,] +) (,. *)? #', '$ 1', $ ipAddr));

}

Doporučuje: