Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 如何限制特定网络的应用_Php_Angularjs - Fatal编程技术网

Php 如何限制特定网络的应用

Php 如何限制特定网络的应用,php,angularjs,Php,Angularjs,我开发了一个应用程序。该应用程序在不同地区的多个办公室中使用 我的要求是,我想限制应用程序必须开放,办公室网络只能开放,不能对外开放 我使用angular作为前端技术,PHP作为后端技术 谢谢,SrinivasaRao.CH最简单的方法是将应用程序托管在子网专用地址范围内,并确保路由器不会将任何外部端口转发到内部服务器。这实际上是默认行为,因为需要显式配置端口转发 由于这是一个PHP问题,唯一可能的PHP方法是检查每个请求上的$\u SERVER['REMOTE\u ADDR']变量的值,并验证

我开发了一个应用程序。该应用程序在不同地区的多个办公室中使用

我的要求是,我想限制应用程序必须开放,办公室网络只能开放,不能对外开放

我使用angular作为前端技术,PHP作为后端技术


谢谢,SrinivasaRao.CH

最简单的方法是将应用程序托管在子网专用地址范围内,并确保路由器不会将任何外部端口转发到内部服务器。这实际上是默认行为,因为需要显式配置端口转发

由于这是一个PHP问题,唯一可能的PHP方法是检查每个请求上的
$\u SERVER['REMOTE\u ADDR']
变量的值,并验证它是否匹配IP范围的白名单。此变量是地址的字符串化人类可读表示形式,但可以轻松转换为规范化表示形式,允许与标准地址进行直接比较:

  • 对于IPv4
  • 对于IPv4和IPv6
(请注意,
ip2long()
的数学功能仅适用于64位版本的PHP。)

例如:

$network_from = inet_pton('192.168.0.1');
$network_to = inet_pton('192.168.0.255');

// Allowed visitor
$_SERVER['REMOTE_ADDR'] = '192.168.0.5';
$visitor = inet_pton($_SERVER['REMOTE_ADDR']);
var_dump($visitor>=$network_from && $visitor<=$network_to); // bool(true)

// External visitor
$_SERVER['REMOTE_ADDR'] = '151.101.1.69';
$visitor = inet_pton($_SERVER['REMOTE_ADDR']);
var_dump($visitor>=$network_from && $visitor<=$network_to); // bool(false)
$network\u from=inet\u pton('192.168.0.1');
$network_to=inet_pton('192.168.0.255');
//允许访客
$\u服务器['REMOTE\u ADDR']='192.168.0.5';
$visitor=inet_pton($_SERVER['REMOTE_ADDR']);

var_dump($visitor>=$network_from&&&$visitor=$network_from&&&&$visitor实际上,它不应该是应用程序级解决方案,而是网络。请您的网络工程师相应地配置防火墙