Právě je 11 úno 2012 08:25

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 
Autor Zpráva
 Předmět příspěvku: PHP - Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 26 kvě 2010 00:17 
Offline

Registrován: 25 kvě 2010 22:49
Příspěvky: 15
Vím, jak ze PHP stránky přečíst IP adresu serveru návštěvníka, pokud je stránka zabezpečená, pak i přihlašovací jméno. Marně hledám, jak zjistit interní IP adresu počítače (nebo jeho jméno), na kterém se stránka zobrazuje - tak, jako to dokáže http://www.mojeip.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 26 kvě 2010 09:58 
Offline
Uživatelský avatar

Registrován: 29 čer 2009 19:53
Příspěvky: 244
  • V $_SERVER['SERVER_ADDR'] je ip adresa serveru.
  • V $_SERVER['REMOTE_ADDR'] je ip adresa klienta.

_________________
Jan Vítek
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 26 kvě 2010 12:03 
Offline

Registrován: 25 kvě 2010 22:49
Příspěvky: 15
Jan Vítek píše:
  • V $_SERVER['SERVER_ADDR'] je ip adresa serveru.
  • V $_SERVER['REMOTE_ADDR'] je ip adresa klienta.


Jde mi o skutečně interní (neveřejnou) IP adresu počítačů v lokální bezserverové síti za routerem. Jde o učebnu, přihlašování je na počítač, ne uživatele, a počítače se neodhlašují (učebnu nespravuji). Remote Address pro všechny počítače je stejná jako Server Addres (IP od poskytovatele připojení) "MojeIP" - http://www.mojeip.cz/ sdělí jak adresu od poskytovatele, tak interní 192.168.168.###. Potřeboval bych vědět, ze kterého počítače dostávám sdělení zprostředkovaná PHP.
"MojeIP" dokazuje, že to jde, ale návod jsem nenašel - zkoušel jsem mj.
$_SERVER["HTTP_X_FORWARDED_FOR"
getenv("HTTP_X_FORWARDED_FOR")
$_SERVER["REDIRECT_REMOTE_USER"]
neukazují nic.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 26 kvě 2010 12:42 
Offline
Uživatelský avatar

Registrován: 29 čer 2009 19:53
Příspěvky: 244
Mělo by to být v proměnné $_SERVER['HTTP_X_FORWARDED_FOR']. Pokud to nefunguje, zkuste si vypsat celý obsah pole $_SERVER, jestli to není v jiné proměnné. Na to je jednoduchý skript:

Kód:
<pre><? var_dump($_SERVER) ?></pre>


Pokud přistupujete na internet přímo a není v cestě proxy server, tak původní interní ip adresa k dispozici určitě není. Pokud ip adresu dokáže zjistit aplikace na http://www.mojeip.cz, tak by interní ip měla být v $_SERVER['HTTP_X_FORWARDED_FOR'].

_________________
Jan Vítek
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PHP - Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 26 kvě 2010 18:22 
Offline

Registrován: 25 kvě 2010 22:49
Příspěvky: 15
Děkuji za tipy - proměnné serveru jsem již také vypisoval (složitě s foreach), var_dump je krásně jednoduchý. Bohužel nic.
Asi dostat se k internímu IP nebude snadné; věnoval jsem hledání hodně času, zkusil jsem i dotaz na "MojeIP" (bez odpovědi). Nějak to "MojeIP" dělat musí, ale kudy interní IP čtou je záhada. Server hostingu komunikuje na veřejné IP, interní znát nemusí. Pak se "MojeIP" musí dostat k datům poskytovatele spojení (DNS serveru?) nebo přímo do počítače na konci cesty - je to vůbec legální?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PHP - Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 28 kvě 2010 15:44 
Offline
Uživatelský avatar

Registrován: 30 čer 2009 08:14
Příspěvky: 1895
Dobrý den,
pomocí PHP se lokální IP zjistit nedá. Jediná možnost je použít nějaký Java applet. Nevýhodou je, že uživatel nemusí mít Javu povolenou, potom IP adresu nezjistíte. Ale stejné řešení používají i na MojeIP. Schválně si vyzkoušejte v prohlížeči vypnout Javu, uvidíte, že to lokální IP nezjistí.

Zde máte pár odkazů na řešení:

http://www.hajsl.cz/skripty.php - již hotový skript
http://www.exampledepot.com/egs/java.net/Local.html

_________________
Radek Plašil
Webhosting C4
http://www.c4.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PHP - Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 28 kvě 2010 15:59 
Offline

Registrován: 25 kvě 2010 22:49
Příspěvky: 15
Radek Plašil píše:
Zde máte pár odkazů na řešení:
http://www.hajsl.cz/skripty.php - již hotový skript
http://www.exampledepot.com/egs/java.net/Local.html

První návod znám, funguje, ale nevím (a stejně i s druhým návodem), jak vychytávku začlenit do PHP skriptu. Nechci IP na stránce ukazovat, jen v PHP dostat do proměnné a s ní pracovat. Jde o identifikaci počítačů ve školní učebně - uživatelé nejsou roslišeni.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PHP - Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 31 kvě 2010 11:54 
Offline

Registrován: 04 bře 2010 14:27
Příspěvky: 1
Dobrý den,
podle toho prvního návodu to lze udělat tím, že si stáhnete skript ze stránek http://www.hajsl.cz/skripty.php a jen upravíte soubor 'youip.php' například takto:
Kód:
<?
$file = $_SERVER['DOCUMENT_ROOT']."/IP.log";
$log_str = "IP: " . @$_SERVER['REMOTE_ADDR']." local-IP: ".$_GET['a']." čas: ".date('Y-m-d H:i:s');
if(!preg_match('/\n$/', $log_str)) $log_str .= "\n";
$fid = fopen($file, 'a');
if($fid) {
   if(fwrite($fid, $log_str)) fclose($fid);
}
?>

a v souboru ip.php pak už jen nechat vypsat ten první řádek, ten iframe. Honza


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PHP - Jak zjistit lokální IP počítače klienta?
PříspěvekNapsal: 04 čer 2010 11:04 
Offline

Registrován: 25 kvě 2010 22:49
Příspěvky: 15
Dobrý den,
děkuji za výborný tip! Použil jsem zápis do souboru jen samotného IP, které z jiné aplikace načtu.
Možná funguje lepší způsob předání proměnné z youip.php, ale na to jsem krátký.
Renda


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 9 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  


© 2009-2010 ČESKÝ WEBHOSTING s.r.o. Kontaktní e-mail: forum@c4.cz
Diskuzní fórum využívá technologie: phpBB, phpBB-SEO.com, phpBB.cz