【发布时间】:2016-05-18 18:02:04
【问题描述】:
TL;DR:如何检测本地网站用户?
我有一个在我居住的学生楼中运行的自托管网站。在这个网站中,我想要一个页面和链接到某些本地应用程序,例如运行 Kodi 的 RPi 的远程网络、一个 FTP、一个页面指令等。
我不希望随机互联网用户看到这些内容,那么网站有什么方法可以检测用户是否从本地网络内部访问网站?最好用 JavaScript,但 PHP 也可以。
【问题讨论】:
TL;DR:如何检测本地网站用户?
我有一个在我居住的学生楼中运行的自托管网站。在这个网站中,我想要一个页面和链接到某些本地应用程序,例如运行 Kodi 的 RPi 的远程网络、一个 FTP、一个页面指令等。
我不希望随机互联网用户看到这些内容,那么网站有什么方法可以检测用户是否从本地网络内部访问网站?最好用 JavaScript,但 PHP 也可以。
【问题讨论】:
在 PHP 中,它可以通过多种方式完成。最简单的方法是进行简单的 IP 检查。
if ($_SERVER['REMOTE_ADDR'] = "10.1.0.25") { // Internet IP or IP rangehere
// Show links for internal users
} else {
// Show stuff for all other users
}
或者对于假设 192.168.1.x 地址的 IP 范围
if ($_SERVER['REMOTE_ADDR'] >= "192.168.1.1" && $_SERVER['REMOTE_ADDR'] <= "192.168.1.1") {
// Internal Info
} else {
// External Info
}
【讨论】:
REMOTE_ADDR通过内部服务器IP访问服务器时为192.168.x.x,如果通过DNS名称访问则返回路由器的WAN IP。追问:有没有办法找到服务器的WAN地址,可以和REMOTE_ADDR比较一下?我试过SERVER_ADDR,但它只给了内部服务器IP。