Autor Zpráva
boban40
Profil
Dělám na webu článek o internetové bezpečnosti.
Potřeboval bych tam vložit nějaký HTML kód, který by mi dokázal zobrazit co nejvíce informací z IP návštěvníka.
Aby mohl vidět, co všechno se dá jen z IP adresy vytáhnout.

Předem díky za tipy :)
Marschmallow
Profil
boban40:
Spíš PHP.


IP adresu zjistíš PHP funkcí:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "Vase IP adresa je: $ip";
?>
boban40
Profil
To je super a dá se i nějako i zobrazit odkud je, jaký používa prohlížeč/OS a tak?
Díky za odpověď
Davex
Profil
boban40:
odkud je, jaký používa prohlížeč/OS a tak?
Zjistit se to dá z dalších hodnot v poli $_SERVER, ale co to má společného s internetovou bezpečností?
boban40
Profil
Davex:
ale co to má společného s internetovou bezpečností?
Je to článek o internetové bezpečnosti a anonymním prohlížení. Tohle chci, aby lidem na vlastní oči ukázalo, co všechno jde zjistit jen z IP adresy.
Můžu Vás poprosit o nějaký seznam hodnot pro pole $_SERVER nebo třeba nějaký odkaz, kde jsou vypsané.
A ještě kdybyste mi mohl napsat kód např. pro 3 atributy pod sebou, abych věděl, jak pak pokračovat.
Díky
juriad
Profil
Technicky vzato, z IP adresy žádné takové informace nezískáš; jediné o co se můžeš pokusit, je určení polohy podle GeoIP a i to je dost nepřesné - často se nedozvíš nic lepšího než kraj.
Všechny další informace - prohlížeč, OS, jazyk vlastně posílá snad každý prohlížeč automaticky a pokročilý uživatel to může ovlivnit.
Další informace lze získat z JavaScriptu a Flashe.

Podívej se na: https://panopticlick.eff.org/
Mě to píše: Your browser fingerprint appears to be unique among the 4,597,188 tested so far.
Především protože mám v systému nainstalovanou podivnou kombinaci fontů.

Dokumentace superglobální proměnné $_SERVER.
Joker
Profil
boban40:
Tohle chci, aby lidem na vlastní oči ukázalo, co všechno jde zjistit jen z IP adresy.
Jen z IP adresy toho moc zjistit nejde.

Dá se zjistit, komu byla ta IP přidělena, a s různou přesností jeho polohu. Často se ty informace ale netýkají uživatele, ale jeho poskytovatele připojení.
Když si budu ukládat IP adresy jednotlivých návštěv, porovnání IP adres může být jedno z vodítek, jestli jde o stejného nebo různého návštěvníka.

Všechny ty ostatní informace se získávají z toho, co na sebe prohlížeč sám prozradí.
Prohlížeč totiž pošle na server požadavek, který vypadá nějak takhle:
GET / HTTP/1.1
User-Agent: Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.16
Host: diskuse.jakpsatweb.cz
Accept-Language: cs,en;q=0.9

A z toho server může vyčíst, že jde o prohlížeč Opera 12.16, operační systém je Linux v 64-bitové verzi a preferovaný jazyk je čeština, takže uživatel nejspíš bude Čech.

Samozřejmě ale záleží čistě na prohlížeči, co serveru pošle. Kdybych použil úplně ten stejný prohlížeč, ale upravil bych si nastavení a požadavek na server odesílal ve formě:
GET / HTTP/1.1
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Host: diskuse.jakpsatweb.cz
Accept-Language: en-US
…budu Američan s Windows a Internet Explorerem 10.

Přitom ve skutečnosti ty požadavky můžu odesílat klidně z příkazové řádky přes wget :-)
bestik_63
Profil
Zkus proměnnou $_SERVER v php. Najdeš tam spoustu zajímavých informací.
Tady najdeš něco v češtině: http://jecas.cz/server
Tady v angličtině : http://php.net/manual/en/reserved.variables.server.php

Zajímavé proměnné jsou :
$_SERVER["REMOTE_ADDR"]
$_SERVER["HTTP_REFERER"]
$_SERVER["HTTP_USER_AGENT"]

na detekci agenta existuje spousta knihoven, já používám tuto:http://user-agent-string.info/
Nicméně pokud bys používal podobné statistiky tak pozor, na stránky chodí spousta robotů. Asi tak 20x za den. Pokud máš stránky s lepším ratingem tak možná i více, takže je nutné to pak odfiltrovat.
Marschmallow
Profil
boban40:
Vyrobil jsem Ti jednoduchý skript, který si pomocí HTTP hlavičky vyžádá potřebné informace a následně je vyechuje. Tady je Živá ukázka a tady kód:
<?php
$ip = $_SERVER['HTTP_USER_AGENT'];
echo "Informace o Vas:<br> $ip";
?>
Více se dozvíš ve Str4wberyho článku, který již odkazoval v [#8] bestik_63.
boban40
Profil
Díky všem za odpovědi, teď už to nějako splácám dohromady :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: