使网站只能从一个 IP 访问

使网站只能从一个 IP 访问

我们大约有 15 台计算机使用相同的 IP。我们只希望网站可以在我们家内访问。

在每个页面上我都有此代码:

if ($_SERVER['REMOTE_ADDR'] == 'our ip') {
  content
}

它有效,但我只是想知道是否有更优雅,更智能的方法?

我们使用 WAMP。

答案1

您可以使用 Apachehttpd.conf.htaccess文件在站点范围或文件夹范围的基础上进行此项配置。

Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx

答案2

如果您熟悉 CIDR 值,那么在 .htaccess 文件中拒绝访问 IP 地址范围相当简单。请参阅此表格帖子。

答案3

由于您在内部网络上有 15 台计算机,因此您正在使用 NAT 并使用路由器作为 Internet 网关。Web 服务器运行的 IP 是不可路由的 IP 地址(即 192.168.xx),因此除非您在路由器上配置端口转发,否则来自外部的流量将无法到达 Web 服务器。
由于安全是一个问题,您还可以在 Windows 服务器上设置防火墙,仅允许来自本地网络子网的流量。ceejayoz
的建议将阻止流量进入 Apache 服务器,但仍允许访问物理机箱。如果您真的想锁定一切,那么我会在 httpd.conf 中实施建议的配置。

答案4

if ($_SERVER['REMOTE_ADDR'] <> '我们的 ip') { die(); }

// 如果这是你的 IP,内容将会放在这里

我想没有别的办法了。

相关内容