如何使用php获取NAT后面的ip?

发布于 2024-12-22 09:39:53 字数 118 浏览 1 评论 0原文

是否可以在 PHP 中检索 NAT 后面的 IP? 我正在使用 $_SERVER["REMOTE_ADDR"] 来获取客户端的 IP 地址。它没有给出位于 NAT 后面的客户端的确切 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

星光不落少年眉 2024-12-29 09:39:53

使用 HTTP 和 php 无法获取 NAT 后面的 IP。

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

李不 2024-12-29 09:39:53

不,不可能。 NAT 表示网络地址转换 - 数据包的 IP 地址在 NAT 设备上被重写,因此就您的服务器所知,公共 IP 地址是唯一的。

但是,您可以采用一些技巧 - 例如使用 Java Applet 检查内部 IP 地址。请参阅:从 java applet 获取正确的本地 IP 地址

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

┈┾☆殇 2024-12-29 09:39:53

不可以。PHP 只能看到外部 IP。

“远程地址”
用户查看当前页面的 IP 地址。

No. PHP only sees the external IP.

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

冷弦 2024-12-29 09:39:53

如果他们使用代理,您可以使用

       $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR']

其他方式,这是不可能的

if they are using proxy you can use

       $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR']

otherwise, it is not possible

傲世九天 2024-12-29 09:39:53

您无法看到客户的私人地址,通常您也不想看到它,因为您无法访问它。即使它使用代理,有时您也可以通过以下方式获取地址:

 $_SERVER['HTTP_X_FORWARDED_FOR']

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']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文