对联 ·故事 ·史海钩沉 ·人物档案 ·地方风俗 ·谚语大全 ·讽刺与幽默 · 赚钱 · 法律 · 在线教研 · 会员中心 · 心理测试 · 魔鬼词典 · 顺口溜
 
主页特效 网页特效 百家姓
娱乐 歇后语 绕口令 脑筋急转弯
 
谚语 谜语 名言 邮政编码
便民 酒方 验方 偏方 站长工具  
 
算命 风俗 手相 爱情
女孩 音乐 面相 星座 血型
 
饮食 穴道 偏方 医药
生活 软件 硬件 解梦 高考



   JS特效



实用工具
便民服务 加密解密
 
魅力高密 民间故事 Flash教程 PS教程 最新国内新闻
新华字典 黄道吉日 英语园地  万年历 Html2anycode
  首页 | 美图 | 短信 | 安全 | 校园 | 网站 | 游戏 | UFO | 文秘 | 生活 | 信息技术 | 论文 | 人生 | 情感 | 日记
返回首页
当前位置: 主页 > 网站建设 >

用PHP直接从QQWry.dat解析IP地址的程序(编码为ut

时间:2010-12-28 13:58来源:盼盼的家园 作者:鸡蛋 点击:
用PHP直接从QQWry.dat解析IP地址的程序(编码为utf8)小记 今天无事,修改了一个显示访问的IP所对应的地区或详细地址的程序,于是我就用到了,纯真版的QQWry.dat数据库,而且也有一个读
  

用PHP直接从QQWry.dat解析IP地址的程序(编码为utf8)小记

今天无事,修改了一个显示访问的IP所对应的地区或详细地址的程序,于是我就用到了,纯真版的QQWry.dat数据库,而且也有一个读取改数据库的PHP文件qqwry.php,代码如下:
   现在的问题是,网站全用的utf8编码,但是这个读取数据库的PHP程序好像是GB2321的编码方式,而且怎么也改不了UTF8的,不知 道哪个地方错误,所以显示出来的地区就全部是乱码,不能正常显示,所以如果哪位能帮我改下编码或者有更好的程序还请帮个忙!
   [php]
<?php
#本文件编辑必须是GB2312
#文件名:QQWry.php
/*++++++++++++++++++++++++++++++++++++
程序名称:IP解析程序
程序功能:基于QQ的二进制数据库QQWry.Dat
程序作者:未知
使用方法:

请将文件 QQWry.Dat 置于当前目录中

#实例+++++++++++++++++++++++++++++++
$ip="202.201.48.1";#
$QQWry=new QQWry;
$ifErr=$QQWry->QQWry($ip);
echo "$QQWry->Country$QQWry->Local";

+++++++++++++++++++++++++++++++++++++

ip.php是测试程序
++++++++++++++++++++++++++++++++++

欢迎访问:http://www.bye123.com

+++++++++++++++++++++++++++++++++++++*/
define('__QQWRY__' , dirname(__FILE__)."/qqwry.dat");
//echo __QQWRY__;
class QQWry{
    var $StartIP=0;
    var $EndIP=0;
    var $Country='';
    var $Local='';

    var $CountryFlag=0; // 标识 Country位置
             // 0x01,随后3字节为Country偏移,没有Local
             // 0x02,随后3字节为Country偏移,接着是Local
             // 其他,Country,Local,Local有类似的压缩。可能多重引用。
    var $fp;

    var $FirstStartIp=0;
    var $LastStartIp=0;
    var $EndIpOff=0 ;

    function getStartIp($RecNo){
     $offset=$this->FirstStartIp+$RecNo * 7 ;
     @fseek($this->fp,$offset,SEEK_SET) ;
     $buf=fread($this->fp ,7) ;
     $this->EndIpOff=ord($buf[4]) + (ord($buf[5])*256) + (ord($buf[6])* 256*256);
     $this->StartIp=ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])*256*256) + (ord($buf[3])*256*256*256);
     return $this->StartIp;
    }

    function getEndIp(){
     @fseek ( $this->fp , $this->EndIpOff , SEEK_SET ) ;

顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
赞助商位置
推荐内容
杂七杂八