资源描述:
《根据ip自动显示地区网站的代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、根据ip自动显示地区网站的代码php根据IP显示地区代码define('IPDATA_MINI',PHPCMS_ROOT.'include/ipdata/mini.Dat');define('IPDATA_FULL',PHPCMS_ROOT.'include/ipdata/QQWry.Dat');classip_area{var$fp=NULL;var$func;var$offset;var$index;functionip_area(){if(@file_exists(IPDATA_MINI))
2、{$this->func=‘data_mini’;$this->fp=@fopen(IPDATA_MINI,‘rb’);$this->offset=unpack(’Nlen’,fread($this->fp,4));$this->index=fread($this->fp,$this->offset['len']–4);}elseif(@file_exists(IPDATA_FULL)){$this->func=‘data_full’;$this->fp=@fopen(IPDATA_FULL,‘r
3、b’);}}functionget($ip){$return=”;if(preg_match(”/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/”,$ip)){$iparray=explode(’.',$ip);if($iparray[0]==10
4、
5、$iparray[0]==127
6、
7、($iparray[0]==192&&$iparray[1]==168)
8、
9、($iparray[0]==172&&($iparray[1]>=16&&$iparray[1]<=31))){$retur
10、n='LAN';}elseif($iparray[0]>255
11、
12、$iparray[1]>255
13、
14、$iparray[2]>255
15、
16、$iparray[3]>255){$return=‘InvalidIPAddress’;}else{$return=$this->func?$this->{$this->func}($ip):”;if(strpos($return,‘‘)!==false)$return=substr($return,0,strpos($return,’‘));}if(strtolo
17、wer(CHARSET)==‘utf-8′)$return=iconv(’gbk’,‘utf-8′,$return);}return$return;}functiondata_mini($ip){$ipdot=explode(’.',$ip);$ipdot[0]=(int)$ipdot[0];$ipdot[1]=(int)$ipdot[1];$ip=pack(’N',ip2long($ip));$length=$this->offset['len']–1028;$start=unpack(’Vle
18、n’,$this->index[$ipdot[0]*4].$this->index[$ipdot[0]*4+1].$this->index[$ipdot[0]*4+2].$this->index[$ipdot[0]*4+3]);for($start=$start['len']*8+1024;$start<$length;$start+={if($this->index{$start}.$this->index{$start+1}.$this->index{$start+2}.$this->inde
19、x{$start+3}>=$ip){$this->index_offset=unpack(’Vlen’,$this->index{$start+4}.$this->index{$start+5}.$this->index{$start+6}.“x0″);$this->index_length=unpack(’Clen’,$this->index{$start+7});break;}}fseek($this->fp,$this->offset['len']+$this->index_offset['
20、len']–1024);if($this->index_length['len']){returnstr_replace(’-‘,”,fread($this->fp,$this->index_length['len']));}else{return‘Unknown’;}}functiondata_full($ip){rewind($this->fp);$ip=explode(’.',$ip);$ipNum=$ip[0]*16777216+$ip[1]*65536+$ip[2]*25