2011-12-21 8 views

Trả lời

3

Không, không thể. NAT có nghĩa là địa chỉ mạng Translation - địa chỉ IP của các gói được viết lại trên thiết bị NAT, vì vậy địa chỉ IP công cộng là địa chỉ duy nhất, theo như máy chủ của bạn biết.

Tuy nhiên, bạn có thể sử dụng một số thủ thuật - chẳng hạn như kiểm tra địa chỉ IP nội bộ bằng cách sử dụng Java Applet. Thấy điều này: Get the correct local IP address from java applet

+0

(Tôi không chắc chắn về những gì bạn cần địa chỉ IP nội bộ, dù sao, và lưu ý rằng nhiều NAT lồng nhau là có thể - để một máy tính có thể được xem ví dụ như 192.168.0.153, 10.53.0.1, 192.168.42.12 và 1.2.3.4, tùy thuộc vào cấu trúc liên kết mạng) – Piskvor

+0

Tôi cần IP nội bộ để theo dõi các hệ thống bên trong gần bằng mạng. Ở đây họ đang sử dụng nhiều NAT cho mạng. –

+0

Sẽ thử mã Applet này ... –

4

Không thể lấy IP phía sau NAT bằng HTTP và php.

+0

OK ... Cảm ơn bạn ..... –

2

Không. PHP chỉ thấy IP bên ngoài.

'REMOTE_ADDR' Địa chỉ IP mà người dùng đang xem trang hiện tại.

2

nếu họ đang sử dụng proxy bạn có thể sử dụng

 $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR'] 

nếu không, nó không thể

+0

Điểm tốt; nhưng trong hầu hết các thiết lập NAT, đây không phải là trường hợp. – Piskvor

+0

$ real_ip = $ _SERVER ['HTTP_X_FORWARDED_FOR'] được sử dụng để phát hiện proxy đúng không? –

+0

Bạn có thể kiểm tra http://en.wikipedia.org/wiki/X-Forwarded-For – mustafa

0

Bạn không thể nhìn thấy địa chỉ cá nhân của khách hàng và thông thường bạn không quan tâm để xem nó cho phép bạn không thể truy cập điều đó. Ngay cả khi sử dụng proxy, đôi khi bạn có thể nhận được địa chỉ theo:

$_SERVER['HTTP_X_FORWARDED_FOR'] 
+0

Được rồi ... Nhưng để phát hiện proxy đúng không? –