• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中实现IP地址的限制访问_PHP

php 搞代码 4年前 (2022-01-25) 77次浏览 已收录 0个评论

IP地址

先将你的允许访问ip范围写出来。如果不知道,就要到网上找一个ip表看看

单个 IP:

if ( $REMOTE_ADDR == ‘12.34.56.78’ )
{
//允许访问
}

如果是一组 IP,就要看这些 IP 的范围及是否连续了
连续的 IP 好办一些,不连续的 IP 就得挨个比较,影响速度 。


限制ip的一段源程序:

<%
if($GLOBALS[“CanMaskIp”]==1) //封杀IP地址
{
$strSQL=”SELECT count(*) FROM MaskIp WHERE ‘”.$GLOBALS[“strVisitedIp”].”‘ BETWEEN SrcIpAddr AND DesI/本2文来源[email protected]搞@^&代*@码2网搞gaodaima代码pAddr”;
$tmpMaskIp=mysql_fetch_row(mysql_query($strSQL,$GLOBALS[“hDatabase”]));
if($tmpMaskIp[0]>0)
{
echo “\n”;
echo “\n”;
echo ““.$GLOBALS[“WindowTitle”].”\n”;
echo “\n”;
echo “<body>\n”;
echo “

  

\n”;
echo “

  

\n”;
echo “

  

\n”;
echo “

  

\n”;
echo “

嘿嘿,你的IP地址被管理员禁止了哦!!
\n”;
echo “


\n”;
echo “想想你自已是不是干了什么哈?!\n”;
echo “

\n”;
echo “\n”;
echo “”;
mysql_close($GLOBALS[“hDatabase”]);
exit();
}
unset($tmpMaskIp);
}
%>

要求建立如下表:

CREATE TABLE MaskIp (
SrcIpAddr varchar(16) NOT NULL default ”,
DesIpAddr varchar(16) NOT NULL default ”,
PRIMARY KEY (SrcIpAddr)
) TYPE=MyISAM COMMENT=’记录封杀IP地址’;


<?
function chkip($client_ip,$network_number,$ip_mask)
{
preg_match(“/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/”,$client_ip,$ipsplit);
preg_match(“/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/”,$ip_mask,$ipsplit1);
preg_match(“/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/”,$network_number,$ipsplit2);
if (((integer)$ipsplit[1]&$ipsplit1[1])==$ipsplit2[1])
if (((integer)$ipsplit[2]&$ipsplit1[2])==$ipsplit2[2])
if (((integer)$ipsplit[3]&$ipsplit1[3])==$ipsplit2[3])
if (((integer)$ipsplit[4]&$ipsplit1[4])==$ipsplit2[4])
return true;
return false;
}
?>

函数参数一个是客户端ip,后面是使用网段比较的方式,
将ip地址与掩码做与运算,结果与网段值相同,则在该网段内,返回true。
对于楼主使用的例子,其调用如下
chkip($REMOTE_ADDR,”202.112.96.0″,”255.255.255.0″)
把禁止列表读到内存中然后一个个比较……


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php中实现IP地址的限制访问_PHP

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址