如何使用PHP获取IP背后的IP?

如何使用PHP获取IP背后的IP?

问题描述:

Is it possible to retrieve IP behind NAT in PHP? I am using $_SERVER["REMOTE_ADDR"] for getting IP address of the client. It's not giving exact IP address of the client which is in behind NAT.

是否可以在PHP中检索NAT后面的IP? 我正在使用 $ _ SERVER [“REMOTE_ADDR” ] code>获取客户端的IP地址。 它没有提供NAT后面的客户端的确切IP地址。 p> div>

Nope, not possible. NAT means Network Address Translation - the IP address of the packets is rewritten at the NAT device, so the public IP address is the only one, as far as your server knows.

However, you can employ some tricks - such as checking for the internal IP address using a Java Applet. See this: Get the correct local IP address from java applet

It is not possible to get the IP behind a NAT using HTTP and php.

No. PHP only sees the external IP.

'REMOTE_ADDR' The IP address from which the user is viewing the current page.

if they are using proxy you can use

       $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR']

otherwise, it is not possible

You cannot see the private address of client and usually you don't care to see it beacuse you can't access that. Even if it used a proxy, sometimes you may get address by:

 $_SERVER['HTTP_X_FORWARDED_FOR']