Có thể truy xuất IP phía sau NAT trong PHP không? Tôi đang sử dụng $_SERVER["REMOTE_ADDR"]
để nhận địa chỉ IP của ứng dụng khách. Nó không đưa ra địa chỉ IP chính xác của máy khách nằm phía sau NAT.làm thế nào để có được ip phía sau NAT bằng cách sử dụng php?
Trả lời
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
(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
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. –
Sẽ thử mã Applet này ... –
Không thể lấy IP phía sau NAT bằng HTTP và php.
OK ... Cảm ơn bạn ..... –
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.
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ể
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']
Được rồi ... Nhưng để phát hiện proxy đúng không? –
Tại sao bạn muốn? – Devraj