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 内的 DNS 将该主机名指向面向 Internet 的路由器 IP 地址,然后请求仍将由路由器转发端口。