PHP-如何使页面仅在本地网络中可见

PHP-如何使页面仅在本地网络中可见,php,.htaccess,lan,Php,.htaccess,Lan,大家好,我还有一个问题,我正在用PHP编写一个简单的网站,我的网站在本地网络中的可见性存在问题,无法让我使用的远程地址看到它 $_SERVER['REMOTE_ADDRESS'] ,但我想让它在我的局域网中可见 我怎样才能做到这一点呢?我不完全确定,但也许这是一个足够好的解决方案: if( substr($_SERVER['REMOTE_ADDRESS'], 0, 3) == '10.' ) { // welcome... } 您应该在.htaccess文件中执行此操作 首先指定一个拒

大家好,我还有一个问题,我正在用PHP编写一个简单的网站,我的网站在本地网络中的可见性存在问题,无法让我使用的远程地址看到它

$_SERVER['REMOTE_ADDRESS']
,但我想让它在我的局域网中可见


我怎样才能做到这一点呢?

我不完全确定,但也许这是一个足够好的解决方案:

if( substr($_SERVER['REMOTE_ADDRESS'], 0, 3) == '10.' ) {
   // welcome...
}

您应该在.htaccess文件中执行此操作

首先指定一个拒绝全部, 然后指定应该允许的IP地址列表

order deny,allow
deny from all
allow from X.X.X.X
allow from X.X.X.X
allow from X.X.X.X
您可以允许这样的范围:

allow from 10.0.0.0-10.255.255.255
allow from 10.0-255.0-255.0-255
allow from 10.*.*.*
Order Deny,Allow
Deny from all
Allow from 192.168.1.1/24
<Limit GET POST>
 Require all denied
 Require ip 192.168.1.0/24
</Limit>
如果要允许
1.2.3.254
1.2.3.255
1.2.4.1
1.2.4.2
1.2.4.3
1.2.4.4

您可以这样做:

allow from 1.2.3.254-1.2.4.4

在.htaccess中,您还可以允许从ip/子网访问,如下所示:

allow from 10.0.0.0-10.255.255.255
allow from 10.0-255.0-255.0-255
allow from 10.*.*.*
Order Deny,Allow
Deny from all
Allow from 192.168.1.1/24
<Limit GET POST>
 Require all denied
 Require ip 192.168.1.0/24
</Limit>

当然,它应该与您的局域网相匹配

投票率最高的答案适用于Apache 2.2。如果使用2.4,则必须使用以下内容:

allow from 10.0.0.0-10.255.255.255
allow from 10.0-255.0-255.0-255
allow from 10.*.*.*
Order Deny,Allow
Deny from all
Allow from 192.168.1.1/24
<Limit GET POST>
 Require all denied
 Require ip 192.168.1.0/24
</Limit>

要求全部拒绝
需要ip 192.168.1.0/24

::1
非常有效(这也在windows主机文件中指定)。

您是否尝试过简单地指定内部IP地址?为网页提供服务的服务器是否与您用来访问它的计算机位于同一网络上?您应该确保它是,并且您没有让它被服务在一些奇怪的端口上,比如:8888或其他什么。您应该在web服务器或防火墙配置中执行此操作,而不是在PHP代码中执行此操作。您希望如何执行此操作?您是希望web服务器给您一个禁止的文件类型的错误,还是希望php方面检查它,以便它可以显示更好的“您无法访问此内部页面”类型的错误。第一个是htaccess,第二个是在php文件中包含一个检查。@Vic不是10。为打印机保留?当然不是!对于本地网络来说,这是一个非常有效的IP选择。是的,这是因为
192.168.0.0/16
在家庭配置中更为常见
10.0.0.0/8
在企业中更受欢迎,因为它提供了更大的空间,因此子网更灵活。我工作的地方使用24位IP块:)。我知道这绝不是一个完美的解决方案,但可能是一个快速修复方案……它应该是$\u SERVER['REMOTE\u ADDR']。请注意,专用IPV4地址范围在[10.0.0.0–10.255.255]、[172.16.0.0–172.31.255.255]、[192.168.0.0–192.168.255.255]之间,因此您应该首先检查网络的配置!如果您的任何客户端尝试通过IPv6进行访问(这是互联网的未来,不应该被锁定!),您还应该至少启用
fe80::/64
。Apache使用给定的代码返回错误:
顺序取一个参数,“允许、拒绝”、“拒绝、允许”或“相互失败”
。必须删除
订单拒绝、允许
中的第二个空白。我现在更新了答案以反映这一点,谢谢@MarcelPfeifferHi,我知道这个问题有点老了,但我有一个问题。我在我的局域网(
192.168.2.1/24
)上尝试了这个方法,它在网络中的其他计算机上也可以正常工作,但是当从同一台计算机上访问它时,我仍然收到403错误,服务器运行在同一台计算机上。我还添加了127.0.0.1,但没有效果。您能帮助我吗?尝试添加:Allow from localhost Allow from 127.0.0.1/8