700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 纯真ip php PHP利用纯真数据库获取访客IP物理地址

纯真ip php PHP利用纯真数据库获取访客IP物理地址

时间:2023-08-26 19:18:22

相关推荐

纯真ip php PHP利用纯真数据库获取访客IP物理地址

//===================================

//

//功能:IP地址获取真实地址函数

//参数:$ip-IP地址

//

//===================================

functionconvertip($ip){

$dat_path='../QQWry.Dat';

if(!preg_match("/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/",$ip)){

return'IPAddressError';

}

if(!$fd=@fopen($dat_path,'rb')){

return'IPdatefilenotexistsoraccessdenied';

}

$ip=explode('.',$ip);

$ipNum=$ip[0]*16777216+$ip[1]*65536+$ip[2]*256+$ip[3];

$DataBegin=fread($fd,4);

$DataEnd=fread($fd,4);

$ipbegin=implode('',unpack('L',$DataBegin));

if($ipbegin

$ipend=implode('',unpack('L',$DataEnd));

if($ipend

$ipAllNum=($ipend-$ipbegin)/7+1;

$BeginNum=0;

$EndNum=$ipAllNum;

while($ip1num>$ipNum||$ip2num

$Middle=intval(($EndNum+$BeginNum)/2);

fseek($fd,$ipbegin+7*$Middle);

$ipData1=fread($fd,4);

if(strlen($ipData1)

fclose($fd);

return'SystemError';

}

$ip1num=implode('',unpack('L',$ipData1));

if($ip1num

if($ip1num>$ipNum){

$EndNum=$Middle;

continue;

}

$DataSeek=fread($fd,3);

if(strlen($DataSeek)

fclose($fd);

return'SystemError';

}

$DataSeek=implode('',unpack('L',$DataSeek.chr(0)));

fseek($fd,$DataSeek);

$ipData2=fread($fd,4);

if(strlen($ipData2)

fclose($fd);

return'SystemError';

}

$ip2num=implode('',unpack('L',$ipData2));

if($ip2num

if($ip2num

if($Middle==$BeginNum){

fclose($fd);

return'Unknown';

}

$BeginNum=$Middle;

}

}

$ipFlag=fread($fd,1);

if($ipFlag==chr(1)){

$ipSeek=fread($fd,3);

if(strlen($ipSeek)

fclose($fd);

return'SystemError';

}

$ipSeek=implode('',unpack('L',$ipSeek.chr(0)));

fseek($fd,$ipSeek);

$ipFlag=fread($fd,1);

}

if($ipFlag==chr(2)){

$AddrSeek=fread($fd,3);

if(strlen($AddrSeek)

fclose($fd);

return'SystemError';

}

$ipFlag=fread($fd,1);

if($ipFlag==chr(2)){

$AddrSeek2=fread($fd,3);

if(strlen($AddrSeek2)

fclose($fd);

return'SystemError';

}

$AddrSeek2=implode('',unpack('L',$AddrSeek2.chr(0)));

fseek($fd,$AddrSeek2);

}else{

fseek($fd,-1,SEEK_CUR);

}

while(($char=fread($fd,1))!=chr(0))

$ipAddr2.=$char;

$AddrSeek=implode('',unpack('L',$AddrSeek.chr(0)));

fseek($fd,$AddrSeek);

while(($char=fread($fd,1))!=chr(0))

$ipAddr1.=$char;

}else{

fseek($fd,-1,SEEK_CUR);

while(($char=fread($fd,1))!=chr(0))

$ipAddr1.=$char;

$ipFlag=fread($fd,1);

if($ipFlag==chr(2)){

$AddrSeek2=fread($fd,3);

if(strlen($AddrSeek2)

fclose($fd);

return'SystemError';

}

$AddrSeek2=implode('',unpack('L',$AddrSeek2.chr(0)));

fseek($fd,$AddrSeek2);

}else{

fseek($fd,-1,SEEK_CUR);

}

while(($char=fread($fd,1))!=chr(0)){

$ipAddr2.=$char;

}

}

fclose($fd);

if(preg_match('/http/i',$ipAddr2)){

$ipAddr2='';

}

$ipaddr="$ipAddr1$ipAddr2";

$ipaddr=preg_replace('//is','',$ipaddr);

$ipaddr=preg_replace('/^s*/is','',$ipaddr);

$ipaddr=preg_replace('/s*$/is','',$ipaddr);

if(preg_match('/http/i',$ipaddr)||$ipaddr==''){

$ipaddr='Unknown';

}

return$ipaddr;

}

?>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。