我想知道某个服务器设置。
假设我有一个在我的本地网络上运行的 Web 服务器,可以使用诸如 www.example.com 之类的 URL 从网络内部和外部访问它。
我希望我的 PHP 网站能够确定请求是来自内部 LAN 还是来自外部。我怀疑使用 IP 地址是否有可能,因为请求看起来好像来自公共 IP 地址,而不是内部 IP 地址 192.168.xx 并且公共 IP 可能会不时更改。
这可能吗,我如何在 PHP 中实现这一点?
我想知道某个服务器设置。
假设我有一个在我的本地网络上运行的 Web 服务器,可以使用诸如 www.example.com 之类的 URL 从网络内部和外部访问它。
我希望我的 PHP 网站能够确定请求是来自内部 LAN 还是来自外部。我怀疑使用 IP 地址是否有可能,因为请求看起来好像来自公共 IP 地址,而不是内部 IP 地址 192.168.xx 并且公共 IP 可能会不时更改。
这可能吗,我如何在 PHP 中实现这一点?
如果您的请求来自局域网内部,则 $_SERVER['REMOTE_ADDR'] 将来自私有 IP 地址组,如果来自局域网外部,则不会。除非您的内部网络配置不佳,否则情况可能并非如此。
在此处查找正确的地址组 http://en.wikipedia.org/wiki/Private_network
如果您的内部 dns 服务器将 example.com 解析为公共 ip,那么请求似乎也来自公共 ip,因此如果是这种情况,您也知道请求来自内部。
只要您知道办公室的外部 NAT IP 范围,您应该能够通过访问 $_SERVER['REMOTE_ADDR'] 值轻松地做到这一点。