Právě je 25 dub 2024 12:05

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




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 01:17 

Registrován:
25 kvě 2010 23:49
Příspěvky:
14
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 10:58 
C4 podpora
C4 podpora

Registrován:
29 čer 2009 20:53
Příspěvky:
263
  • 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 13:03 

Registrován:
25 kvě 2010 23:49
Příspěvky:
14
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 13:42 
C4 podpora
C4 podpora

Registrován:
29 čer 2009 20:53
Příspěvky:
263
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 19:22 

Registrován:
25 kvě 2010 23:49
Příspěvky:
14
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 16:44 
C4 podpora
C4 podpora

Registrován:
30 čer 2009 09:14
Příspěvky:
8507
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
https://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 16:59 

Registrován:
25 kvě 2010 23:49
Příspěvky:
14
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 12:54 

Registrován:
04 bře 2010 15: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 12:04 

Registrován:
25 kvě 2010 23:49
Příspěvky:
14
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 [ Letní čas ]


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:  
FTP Uploader
Staňte se naším zákazníkem!
Hledáme kolegy
PHP, MySQL Hosting
Návody pro C4

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