‘壹’ php判断是否是有效IP地址的方法
提供下面两个方法,供选择:
functioncheckIp($ip)
{
$arr=explode('.',$ip);
if(count($arr)!=4){
returnfalse;
}else{
for($i=0;$i<4;$i++){
if(($arr[$i]<'0')||($arr[$i]>'255')){
returnfalse;
}
}
}
returntrue;
}
functionisIp($ip){
if(preg_match('/^((?:(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))).){3}(?:25[0-5]|2[0-4]d|((1d{2})|([1-9]?d))))$/',$ip)){
return1;
}else{
return0;
}
}
‘贰’ PHP怎么判断两个IP地址是否相等
这个很简单,直接把两个IP地址进行 == 判断就行了:如下
<?php
header('Content-Type:text/html;charset=utf-8');
$ip1="192.168.0.11";
$ip2="192.168.0.22";
/*
还有如果觉得这两个判断不行,比较多余的做法就是直接把两个IP进行md5加密之后在进行比对
if(md5(trim($ip1))==md5(trim($ip2))){
*/
if(trim($ip1)==trim($ip2)){
echo"两个IP相等";
}else{
echo"两个不相IP相等";
}
?>
‘叁’ php判断是否为域名或者ip
你这个方法是通过判断域名或者ip被“.”分隔成数组后的最后一个元素是否是数字实现的?
应该是有问题的吧,比如aaa.111这个应该不是合法的ip,你这个就通过了。
我觉得还是使用正则比较好。
‘肆’ php判断IP跳转页面
<?php
//第一步:透过代理获取用户真实的IP地址
$theip=getip();
function getIP()
{
static $realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
//第二步:通过读取IP地址库,找到所属地区
//假设表名为ip,字段有begin(起始),end(结束),area(地区代号)
$dblink=@mysql_connect("数据库服务器名","数据库用户名","数据库密码");
$dbselect=@mysql_select_db(数据库名);
if (!$dbselect){
die("数据库无法读取");
}
$result=mysql_query("select * from `ip` where `begin`<=`$theip` and `end`>=`$theip`");
$num=mysql_num_rows($result);
if($num>0){
$info=mysql_fetch_array($result);
$page=$info['area'];
else{
$page='default'; //如果IP不在数据库中,则用缺省的页面
}
//第三步:转到相关页面,如代号为"js",转到"js.php"页面
$page.='.html'; //后缀你可以自己取
echo "<script language=\"javascript\">window.location.replace(\"$page\")</script>";
?>