//echo "$cn" ;
if(ord($c[0])== 0 )
break ;
$str.= $c ;
}
//echo "$str n";
return $str ;
}
function qqwry ($dotip='') {
if( !is_string($dotip) || $dotip==''){return;}
if(preg_match("/^127/",$dotip)){$this->Country="本地网络";return ;}
elseif(preg_match("/^192/",$dotip)) {$this->Country="局域网";return ;}
$nRet;
$ip=$this->IpToInt ( $dotip );
$this->fp= fopen(__QQWRY__, "rb");
if ($this->fp == NULL) {
$szLocal= "OpenFileError";
return 1;
}
@fseek ( $this->fp , 0 , SEEK_SET ) ;
$buf=fread ( $this->fp , 8 ) ;
$this->FirstStartIp=ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])*256*256) + (ord($buf[3])*256*256*256);
$this->LastStartIp=ord($buf[4]) + (ord($buf[5])*256) + (ord($buf[6])*256*256) + (ord($buf[7])*256*256*256);
$RecordCount= floor( ( $this->LastStartIp - $this->FirstStartIp ) / 7);
if ($RecordCount <= 1){
$this->Country="FileDataError";
fclose($this->fp) ;
return 2 ;
}
$RangB= 0;
$RangE= $RecordCount;
// Match ...
while ($RangB < $RangE-1)
{
$RecNo= floor(($RangB + $RangE) / 2);
$this->getStartIp ( $RecNo ) ;
if ( $ip == $this->StartIp )
{
$RangB=$RecNo ;
break ;
}
if ($ip>$this->StartIp)
$RangB= $RecNo;
else