2011-12-21 11 views

Odpowiedz

3

Nie, niemożliwe. NAT oznacza Adres sieciowy Tłumaczenie - adres IP pakietów jest przepisywany na urządzeniu NAT, więc publiczny adres IP jest jedynym, o ile wie twój serwer.

Można jednak zastosować pewne sztuczki - na przykład sprawdzanie wewnętrznego adresu IP przy użyciu apletu Java. Zobacz to: Get the correct local IP address from java applet

+0

(W każdym razie nie jestem pewien, czy potrzebujesz wewnętrznego adresu IP, i pamiętaj, że wiele zagnieżdżonych adresów NAT jest możliwych - aby komputer był widoczny np. 192.168.0.153, 10.53.0.1, 192.168.42.12 i 1.2.3.4, w zależności od topologii sieci) – Piskvor

+0

Potrzebuję wewnętrznego adresu IP do śledzenia systemów w pobliżu sieci. Tutaj używają wielu NAT dla sieci. –

+0

Spróbuję tego kodu Applet ... –

4

Nie można uzyskać adresu IP za NAT przy użyciu HTTP i php.

+0

Okay ... Dziękuję ..... –

2

Nie. PHP widzi tylko zewnętrzny adres IP.

'REMOTE_ADDR' Adres IP, z którego użytkownik przegląda bieżącą stronę.

2

jeśli są one za pomocą serwera proxy można użyć

 $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR'] 

inaczej, to nie jest możliwe

+0

Dobra rada; ale w większości konfiguracji NAT nie ma to miejsca. – Piskvor

+0

$ real_ip = $ _SERVER ['HTTP_X_FORWARDED_FOR'] służy do wykrywania proxy, prawda? –

+0

Czy możesz sprawdzić http://en.wikipedia.org/wiki/X-Forwarded-For – mustafa

0

Nie widać prywatny adres klienta i zwykle nie obchodzi cię zobaczyć bo nie możesz uzyskać do tego dostępu. Nawet jeśli używa proxy, czasami możesz uzyskać adres:

$_SERVER['HTTP_X_FORWARDED_FOR'] 
+0

OK ... Ale czy to dla wykrywania proxy prawda? –