Javascript/PHP - 查找客户端是否在同一网络中


Javascript/PHP - find if the client is in the same network

我有一个网站托管在我的局域网的本地服务器上。此服务器通过路由器的端口转发暴露在外部。我想知道客户端是从局域网外部还是局域网内部连接

对服务器的任何端口转发请求都显示为源自执行端口转发的设备的 IP 地址。

所以你只需要测试:

if ($_SERVER['REMOTE_ADDR'] == $the_ip_address_of_the_router_on_the_lan)

其中$the_ip_address_of_the_router_on_the_lan是已知值,例如 192.168.0.1

LAN上的设备,假设它们直接访问您的服务器,将发出看似来自其自己的LAN IP地址的请求。

警告:如果使用主机名(如 foo.example.com)访问服务器,并且您在 LAN 内部和外部使用相同的主机名,并且 LAN 内的 DNS 将该主机名指向路由器面向 Internet 的 IP 地址,则请求仍将由路由器端口转发。