通过得到客户端IP,和从数据库中得到IP位数
2008-12-19 16:37
274 查看
<?
/*********
实现思想:通过得到客户端IP,和从数据库中得到IP位数
将两者做与操作得到网段,再与数据库中的网段进行比较
**********/
function clearIp(){
$fromIp = $_SERVERS['REMOTE_ADDR'];
$isForbid = false;
$result = mysql_query('Select `ip` From `forbid_ip_table`');
while(!$result){
$ipRage = explode('/',$result['ip']);
$forbidIp = $ipRage[1];//IP段
$maskLen = $ipRage[0];//子码位数
if(getIpRage($fromIp,$maskLen) == $ofrbidIp){
$isForbid = true;
break;
}
}
if($isForbid){
header('Location:error.html');
}
}
//将IP通过与子网掩码与操作得到网段
function getIpRage($ipAddress,$maskLen){
$ipArr = explode('.',$ipAddress);
$binStr = '';
$ipRage = '';//返回的IP
for($i = 0 ;$i<count($ipArr); $i++){
$binStr = decbin($ipArr[$i]);
if(strlen($binStr)<8){
$zero = '';
for($z = 0;$z<8-$binStr; $z++){
$zero .='0';
}
$binStr .= $zero;
}
$tempIp = '';//局部变量
for($j = 0; $j<8; $j++ ){
$yesOrNot = $maskLen >0?1:0;
$tempIp .= $binStr[$j]==$yesOrNot?$yesOrNot:0;
$maskLen--;
}
$ipRage .= bindec($tempIp).'.';
}
return $ipRage;
}
//以下可以测试
$arr = getIpRage('192.168.112.122',14);
print_r($arr);
?>
/*********
实现思想:通过得到客户端IP,和从数据库中得到IP位数
将两者做与操作得到网段,再与数据库中的网段进行比较
**********/
function clearIp(){
$fromIp = $_SERVERS['REMOTE_ADDR'];
$isForbid = false;
$result = mysql_query('Select `ip` From `forbid_ip_table`');
while(!$result){
$ipRage = explode('/',$result['ip']);
$forbidIp = $ipRage[1];//IP段
$maskLen = $ipRage[0];//子码位数
if(getIpRage($fromIp,$maskLen) == $ofrbidIp){
$isForbid = true;
break;
}
}
if($isForbid){
header('Location:error.html');
}
}
//将IP通过与子网掩码与操作得到网段
function getIpRage($ipAddress,$maskLen){
$ipArr = explode('.',$ipAddress);
$binStr = '';
$ipRage = '';//返回的IP
for($i = 0 ;$i<count($ipArr); $i++){
$binStr = decbin($ipArr[$i]);
if(strlen($binStr)<8){
$zero = '';
for($z = 0;$z<8-$binStr; $z++){
$zero .='0';
}
$binStr .= $zero;
}
$tempIp = '';//局部变量
for($j = 0; $j<8; $j++ ){
$yesOrNot = $maskLen >0?1:0;
$tempIp .= $binStr[$j]==$yesOrNot?$yesOrNot:0;
$maskLen--;
}
$ipRage .= bindec($tempIp).'.';
}
return $ipRage;
}
//以下可以测试
$arr = getIpRage('192.168.112.122',14);
print_r($arr);
?>
相关文章推荐
- 通过远程连接socket得到客户端的IP和连接端口
- 如何通过配置F5 使业务程序获得真实客户端IP 及 IIS 日志记录真实客户端的IP
- Flex通过JS获取客户端IP和计算机名的实例代码
- 用ASP代码得到客户端IP和当前地址
- 利用openrowset得到数据库服务器IP
- 在SQLServer上得到客户端信息(操作的数据库名,计算机名,用户名,网卡物理地址,IP地址,程序名)
- MySQL通过IP来访问数据库的权限解决方法
- 通过属性文件来得到数据库的链接
- plsql通过ip链接数据库
- 通过model 得到 属性名和属性类型 放进数据库
- java获取客户端ip 及通过ip获取mac地址后台代码(借鉴别人)
- (转载)Linux网络编程-使用gethostbyaddr,通过ip地址,得到该ip地址的主机的信息
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- Delphi2010中DataSnap高级技术(3)—DataSnap服务器如何得到客户端的IP和端口
- 10G RAC节点2宕机通过修改listener.ora实现客户端通过节点2VIP连接到数据库
- 通过客户端IP来规定访问者的访问权限(原创)
- 如何通过一个IP和子网掩码得到网络地址和广播地址
- 得到客户端的IP(php)
- 通过 MAC 地址得到IP的脚本
- 用ASP代码得到客户端IP和当前地址