如何在PHP浏览器中打开文件之前验证用户IP?

如何在PHP浏览器中打开文件之前验证用户IP?,php,validation,ip-address,Php,Validation,Ip Address,我的网站上有一个PDF文件www.abc.com/abc/xyz.PDF,如果有人在浏览器中打开此链接,他们会得到PDF 在打开PDF之前,我需要编写/实现一个PHP脚本,该脚本根据数组中可用的IP地址检查请求PDF文件的用户的IP地址 PHP脚本应该在后台运行。因为我的用户将直接点击pdf链接,需要执行PHP验证脚本并相应地重定向 感谢您在验证这些用户时提供的任何帮助 $ips = array('127.0.0.1', '34.43.43.12'); if(!in_array($_SERVE

我的网站上有一个PDF文件www.abc.com/abc/xyz.PDF,如果有人在浏览器中打开此链接,他们会得到PDF

在打开PDF之前,我需要编写/实现一个PHP脚本,该脚本根据数组中可用的IP地址检查请求PDF文件的用户的IP地址

PHP脚本应该在后台运行。因为我的用户将直接点击pdf链接,需要执行PHP验证脚本并相应地重定向

感谢您在验证这些用户时提供的任何帮助

$ips = array('127.0.0.1', '34.43.43.12');

if(!in_array($_SERVER['REMOTE_ADDR'], $ips))
{
 echo 'no access';
}
else
{
  //access
  header('Content-type: application/pdf');
  readfile('file.pdf'); //change location to your file
}

你可以找到这个代码。在下次发布问题之前,请尝试进行一些研究。

使用此方法获取客户端系统的IP:
$\u SERVER['REMOTE\u ADDR']

感谢您提供的信息、好运和无数类似问题。因为您的访问者可能会使用动态IP,如果您选择不同的身份验证方法,可能会有更好的用户体验。我在想,单击pdf链接是否可以在后台运行此脚本。一旦验证,它将打开pdf或给出403错误。你可以做任何你想得到的403错误使用,而不是
echo'no access'这个
头('HTTP/1.0 403禁止')
您可以使用.htaccess和
拒绝来自所有人
以及以后的
允许来自IP
是否可以在数组列表上使用此格式(43.43.43.0/50)?@MarkGerrylMirandilla是的,但是$\u服务器['REMOTE\u ADDR']将为您提供IP,您需要请求网络地址,因此如果您想这样做,您需要使用$\u服务器获取IP['REMOTE_ADDR']将其转换为二进制并应用等于50的二进制掩码。我在我的github存储库中进行了此操作,您可以查看