Czy można odzyskać IP za NAT w PHP? Używam $_SERVER["REMOTE_ADDR"]
do uzyskiwania adresu IP klienta. Nie podaje dokładnego adresu IP klienta, który znajduje się za NATem.jak uzyskać IP za NAT przy użyciu php?
Odpowiedz
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
(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
Potrzebuję wewnętrznego adresu IP do śledzenia systemów w pobliżu sieci. Tutaj używają wielu NAT dla sieci. –
Spróbuję tego kodu Applet ... –
Nie można uzyskać adresu IP za NAT przy użyciu HTTP i php.
Okay ... Dziękuję ..... –
Nie. PHP widzi tylko zewnętrzny adres IP.
'REMOTE_ADDR' Adres IP, z którego użytkownik przegląda bieżącą stronę.
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
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']
OK ... Ale czy to dla wykrywania proxy prawda? –
Dlaczego chcesz? – Devraj