【问题标题】:How do I find the IP address of a VPN client in PHP如何在 PHP 中找到 VPN 客户端的 IP 地址
【发布时间】:2014-09-24 17:21:18
【问题描述】:

我已经在这个问题上寻找了一段时间,在与我的移动 ISP 角力之后,终于有了一个 VPN 客户端来测试......

...然而...

this code (great article) 中使用$_SERVER 的所有其他解决方案似乎只返回VPN 服务器地址的IP 地址(192.168.1.sss)。

我的解决方案要求我将消息发送到远程机器(在 VPN 的末端)而不是主 VPN 服务器。

例如:

  1. 外部客户端浏览器填写一个发布到 PHP 页面的表单 (VPN:192.168.1.ccc)
  2. 服务器 www.example.com (192.168.1.sss) 上的 PHP 页面然后编译一组指令以发送到与服务器位于同一逻辑网络(通过 VPN)上的远程计算机 192.168.1.rrr

...问题是,$_SERVER[] 似乎返回 192.168.1.sss 而不是 192.168.1.ccc

即使我向 192.168.1.ccc 发送消息(使用 CURL),它也会显示为未找到。

关于如何让网络知道 VPN 客户端地址的任何想法,这意味着我可以发送消息??

提前致谢。

【问题讨论】:

  • AFAIK 您的 VPN 服务器需要充当纯网桥或完全配置的路由器才能让整个网络相互看到。听起来它目前充当 NAT 路由器或类似的受限路由器。在这种情况下,PHP 能做的事情并不多。
  • 谢谢@deceze - 我害怕那个。我想点击设备的主要原因是响应消息并唤醒设备 - 有点像Wake on LAN,但要做的远不止这些......

标签: php web-services ip-address vpn pptp


【解决方案1】:

我认为在这种情况下无法检索原始客户端 IP。客户端没有获得单独的本地地址,它通过 vpn 网关进行隧道传输。您可能能够通过网关将流量转发回客户端,具体取决于您的设置。这个question 有一个 iptables 示例。

【讨论】:

  • 嗨@Jeremiah - 感谢您推荐一篇文章。这几乎是我正在尝试的确切情况......除了 VPN 客户端是呼叫电话并且“下游”设备连接到 WiFi 热点。所有这些 VPN 事情的主要原因是,没有办法用来自网络外的消息来打手机。移动提供商都将它们阻止为不是“在网络上”发起的,并且是成对的响应。这一切在 LAN 上都可以正常工作,而不是 WAN :-(
猜你喜欢
  • 2015-09-07
  • 2021-10-22
  • 2018-07-27
相关资源
最近更新 更多