Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅在指定的IP地址中访问网页_Php_Php 7 - Fatal编程技术网

Php 仅在指定的IP地址中访问网页

Php 仅在指定的IP地址中访问网页,php,php-7,Php,Php 7,我使用PHP和MySql构建了一个仪表板,我的公司员工可以在这里登录、注销、请假、添加工作报告和维护考勤。一切正常,但我的经理希望仪表板只在我们的办公网络中打开。 由于这是一项简单的任务,我在登录页面中添加了以下代码 <?php $ip = $_SERVER['REMOTE_ADDR']; if($ip == "xxx.xxx.xxx.xxx") { } else { header("Location: error.php"); } ?&g

我使用PHP和MySql构建了一个仪表板,我的公司员工可以在这里登录、注销、请假、添加工作报告和维护考勤。一切正常,但我的经理希望仪表板只在我们的办公网络中打开。 由于这是一项简单的任务,我在登录页面中添加了以下代码

<?php
$ip = $_SERVER['REMOTE_ADDR'];  

if($ip == "xxx.xxx.xxx.xxx")
{
}
else
{
  header("Location: error.php");
}
?>

在error.php页面上,我添加了一条错误消息“您不允许访问此页面”

我使用的IP地址来自谷歌(IPV4)。这是很好的工作,但最近我意识到互联网IP地址经常变化。
现在这种情况不起作用了。因此,任何人都可以帮助我在这种情况下需要使用哪个IP地址,或者解决方案是什么。

你的意思是,贵公司的IP不是静态的,并且经常变化

如果是这样,您可以创建一个在公司计算机上运行的脚本,以更新服务器上允许的IP。

有两种方法:

  • 根据IP地址范围重定向到错误页面。这基本上是一个Web服务器配置任务。它要求您知道来自办公室的流量使用哪些IP地址。要更改IP地址,您需要使两者保持同步
  • 将整个服务器移动到本地办公网络。这是首选的解决方案,因为您的基础设施较少暴露在(潜在的恶意)internet上

您的方法与第一种方法类似,只是您试图重新实现Web服务器提供的现成功能。

问题已经解决。如果有人在寻找答案

我在internet上找到的最简单的解决方案是允许整个子网

.htaccess代码:

Order Deny,Allow
Deny from all
Allow from 111.111
由于IPV4是可变的,我观察到前6位是静态的&只有后6位是可变的


因此,我删除了PHP函数&使用htaccess中的上述代码,我允许整个子网(通过前6位)

您可以要求您的ISP提供固定(静态)IP地址,然后您可以使用非PHP over-arching系统(如Apache)仅允许您的静态固定IP地址访问文件/文件夹。PS>Ulrich的答案是最好的解决方案(即将所有信息都放在本地办公室的互联网上),如何相信它是来自公司内部计算机的方向,而不是来自其他地方的计算机的方向?