1

我想知道某个服务器设置。

假设我有一个在我的本地网络上运行的 Web 服务器,可以使用诸如 www.example.com 之类的 URL 从网络内部和外部访问它。

我希望我的 PHP 网站能够确定请求是来自内部 LAN 还是来自外部。我怀疑使用 IP 地址是否有可能,因为请求看起来好像来自公共 IP 地址,而不是内部 IP 地址 192.168.xx 并且公共 IP 可能会不时更改。

这可能吗,我如何在 PHP 中实现这一点?

4

2 回答 2

2

如果您的请求来自局域网内部,则 $_SERVER['REMOTE_ADDR'] 将来自私有 IP 地址组,如果来自局域网外部,则不会。除非您的内部网络配置不佳,否则情况可能并非如此。

在此处查找正确的地址组 http://en.wikipedia.org/wiki/Private_network

如果您的内部 dns 服务器将 example.com 解析为公共 ip,那么请求似乎也来自公共 ip,因此如果是这种情况,您也知道请求来自内部。

于 2012-07-25T15:01:09.613 回答
0

只要您知道办公室的外部 NAT IP 范围,您应该能够通过访问 $_SERVER['REMOTE_ADDR'] 值轻松地做到这一点。

于 2012-07-25T15:01:46.890 回答