国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

QQwry.dat格式區(qū)分與查詢IP位置的PHP程序

QQwry.dat格式區(qū)分與查詢IP位置的PHP程序

更新時(shí)間:2019-05-30 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

QQwry.dat格式分析和查詢IP位置的PHP程序

By Strongc http://strongc.51.net/d2x/
轉(zhuǎn)載時(shí)不要去掉我的名字和我的主頁鏈接,謝謝!

以前的追捕數(shù)據(jù)庫太大,而且很久沒有更新了。
所以我想到利用QQwry.dat這個(gè)文件查詢IP所在位置,QQwry.dat 在很多地方都能找到,一般看IP地址的QQ壓縮包中都有。

但是沒有任何相關(guān)格式資料。

我分析了這個(gè)文件的格式,目前如下結(jié)論:

格式如下:

A。文件頭,共8字節(jié)
B。若干條記錄的結(jié)束地址+國家和區(qū)域
C。按照從小到大排列的若干條起始地址+結(jié)束地址偏移,定長,7字節(jié)
D。所有的IP都是用4字節(jié)整數(shù)記錄的,并且遵照Intel次序,高位在后,低位在前。
E。所有偏移量都是絕對偏移,就是從文件最開頭計(jì)算。
F。除了文件頭用了兩個(gè)4字節(jié)偏移,其余偏移量都用3字節(jié)。
G。所有的偏移量也是低位在前,高位在后
H。采用了一些字符串壓縮技術(shù)

1。文件頭,共8字節(jié)
FirstStartIpOffset:4 第一個(gè)起始IP的絕對偏移
LastStartIpOffset:4 最后一個(gè)起始IP的絕對偏移

2。起始地址+結(jié)束地址偏移記錄區(qū)
每條記錄7字節(jié),按照起始地址從小到大排列

StartIp:4 起始地址,整數(shù)形式的IP
EndIpOffset:3 結(jié)束地址絕對偏移

3。結(jié)束地址+國家+區(qū)域記錄區(qū)

EndIP:4
國家+區(qū)域記錄:不定長

4。國家+區(qū)域記錄,有幾種形式
4.1。
國家字符串,以 0x0 結(jié)束
區(qū)域字符串,以 0x0 結(jié)束

4.2。
Flag:1 標(biāo)識取值: 0x1,后面沒有Local記錄
0x2,后面還有Local記錄
sCountryOffset:3 實(shí)際的字符串要去這個(gè)偏移位置去找
LocalRec:不定長,可選 根據(jù)Flag取值而定。這個(gè)記錄也類似Country,可能采用壓縮

4.3 LocalRec結(jié)構(gòu)一
flag:1 還不是十分了解這個(gè)flag含義,取值 0x1 or 0x2
sLocalOffset:3

4.4 LocalRec結(jié)構(gòu)二
sLocal:不定長 普通的C風(fēng)格字符串

注意:sCountryOffset指向的位置可能依然是4.2格式的,不知道為什么這樣設(shè)計(jì)。


Flag取0x1時(shí),sCountryOffset指向的位置可能是Flag為0x2,這時(shí),LocalRec也在這里尋找。

現(xiàn)在不明白當(dāng)記錄Local的位置遇到0x2的標(biāo)志意味著什么。

在qqwry.dat中,似乎存在一些錯(cuò)誤。
個(gè)別的記錄Local會被寫為:
0x2,0x0,0x0,0x0
根據(jù)規(guī)則,應(yīng)該到文件最開頭去尋找,可是,文件最開頭顯然不是記錄這些的。

我才學(xué)PHP不久,各位不要笑,你要能改進(jìn)當(dāng)然好,記得給我一份。
我參考了一些網(wǎng)上找到的代碼,就不一一寫出出處了。

說老實(shí)話,我很頭疼PHP無法明確指定變量的類型。
比如,我想讓某個(gè)數(shù)是無符號的整形,它很不聽話,非要是帶個(gè)負(fù)號,我只好嘗試各種可能的寫法..........
各位都是怎么處理類似的事情?




define('QQWRY' , $qqwry_root_path . 'QQwry.dat' ) ;

function IpToInt($Ip) {
$array=explode('.',$Ip);
$Int=($array[0] * 256*256*256) + ($array[1]*256*256) + ($array[2]*256) + $array[3];
return $Int;
}

function IntToIp($Int) {
$b1=($Int & 0xff000000)>>24;
if ($b1<0) $b1+=0x100;
$b2=($Int & 0x00ff0000)>>16;
if ($b2<0) $b2+=0x100;
$b3=($Int & 0x0000ff00)>>8;
if ($b3<0) $b3+=0x100;
$b4= $Int & 0x000000ff;
if ($b4<0) $b4+=0x100;
$Ip=$b1.'.'.$b2.'.'.$b3.'.'.$b4;
return $Ip;
}


class TQQwry
{
var $StartIP = 0;
var $EndIP = 0;
var $Country = '';
var $Local = '';

var $CountryFlag = 0; // 標(biāo)識 Country位置
// 0x01,隨后3字節(jié)為Country偏移,沒有Local
// 0x02,隨后3字節(jié)為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 ) ;
$buf = fread ( $this->fp , 5 ) ;
$this->EndIp = ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])*256*256) + (ord($buf[3])*256*256*256);
$this->CountryFlag = ord ( $buf[4] ) ;
return $this->EndIp ;
}

function getCountry ( ) {

switch ( $this->CountryFlag ) {
case 1:
case 2:
$this->Country = $this->getFlagStr ( $this->EndIpOff+4) ;
//echo sprintf('EndIpOffset=(%x)',$this->EndIpOff );
$this->Local = ( 1 == $this->CountryFlag )? '' : $this->getFlagStr ( $this->EndIpOff+8);
break ;
default :
$this->Country = $this->getFlagStr ($this->EndIpOff+4) ;
$this->Local = $this->getFlagStr ( ftell ( $this->fp )) ;

}
}


function getFlagStr ( $offset )
{

$flag = 0 ;
while ( 1 ){
@fseek ( $this->fp , $offset , SEEK_SET ) ;
$flag = ord ( fgetc ( $this->fp ) ) ;
if ( $flag == 1 || $flag == 2 ) {
$buf = fread ($this->fp , 3 ) ;
if ($flag == 2 ){
$this->CountryFlag = 2 ;
$this->EndIpOff = $offset - 4 ;
}
$offset = ord($buf[0]) + (ord($buf[1])*256) + (ord($buf[2])* 256*256);
}else{
break ;
}

}
if ( $offset < 12 )
return '';
@fseek($this->fp , $offset , SEEK_SET ) ;
return $this->getStr();
}
function getStr ( )
{
$str = '' ;
while ( 1 ) {
$c = fgetc ( $this->fp ) ;
if ( ord ( $c[0] ) == 0)
 break ;
$str .= $c ;
}
return $str ;
}


function qqwry ($dotip) {

$nRet;
$ip = 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
$RangE= $RecNo;
}
$this->getStartIp ( $RangB ) ;
$this->getEndIp ( ) ;

if ( ( $this->StartIp<= $ip ) && ( $this->EndIp >= $ip ) ){
$nRet = 0 ;
$this->getCountry ( ) ;
//這樣不太好..............所以..........
$this->Local = str_replace("(我們一定要解放臺灣!!!)", "", $this->Local);

}else {
$nRet = 3 ;
$this->Country = '未知' ;
$this->Local = '' ;
}
fclose ( $this->fp ) ;
return $nRet ;
}
}


function ip2location ( $ip )
{
$wry = new TQQwry ;
$nRet = $wry->qqwry ( $ip );
//可以利用 $nRet做一些事情,我是讓他自動(dòng)記錄未知IP到一個(gè)表,代碼就不寫了。
return $wry->Country.$wry->Local ;
}


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        国产精品久久综合| 日韩免费看的电影| 日韩三级视频在线看| 五月婷婷久久综合| 欧美一区二区女人| 国产精品资源网| 亚洲免费色视频| 欧美一区在线视频| 成人免费视频一区| 亚洲永久免费视频| 精品剧情在线观看| 国产成人免费在线观看| 亚洲精品视频在线观看免费| 欧美日韩国产免费| 久久精品国产在热久久| 亚洲日本一区二区| 日韩欧美国产麻豆| 92精品国产成人观看免费| 亚洲一级片在线观看| 日韩欧美激情在线| 91国偷自产一区二区开放时间| 久久66热re国产| 一区二区三区欧美激情| 欧美大片顶级少妇| 欧日韩精品视频| 成人精品gif动图一区| 日韩高清在线不卡| 日韩理论片中文av| 26uuu另类欧美| 欧美亚洲综合色| 99re这里只有精品6| 精品一区二区三区在线播放视频 | 亚洲精品视频在线| 欧美一区二区三区免费观看视频 | 精品欧美久久久| 欧美在线视频全部完| 成人福利视频网站| 久久国内精品视频| 亚洲国产精品久久久久秋霞影院| 国产欧美日韩在线看| 精品国产乱码久久久久久图片 | 亚洲成人久久影院| 亚洲视频狠狠干| 中国av一区二区三区| 欧美精品一区二区久久婷婷| 欧美午夜精品久久久久久孕妇| 成人午夜电影久久影院| 久久精品免费观看| 男人的天堂亚洲一区| 日韩精品成人一区二区三区| 一区二区三国产精华液| 亚洲欧美日韩国产手机在线| 亚洲国产高清aⅴ视频| 国产香蕉久久精品综合网| 精品久久久久久久久久久久久久久久久| 欧美日本在线视频| 欧美日韩亚洲另类| 91精品午夜视频| 欧美大片国产精品| 国产欧美一区二区在线观看| 国产三级精品三级在线专区| 日本一区二区三区四区| 国产精品欧美久久久久无广告| 国产欧美日韩卡一| 国产精品成人一区二区三区夜夜夜| 2022国产精品视频| 亚洲国产精品传媒在线观看| 国产精品久线在线观看| 一级中文字幕一区二区| 日韩专区一卡二卡| 美日韩一区二区三区| 国产在线精品一区二区夜色 | 欧美日韩高清一区二区不卡| 在线欧美日韩国产| 欧美丰满美乳xxx高潮www| 日韩亚洲欧美综合| 中文字幕一区二区在线观看| 亚洲成av人片一区二区| 精品午夜久久福利影院| 99热国产精品| 日韩午夜三级在线| 亚洲欧洲精品一区二区精品久久久| 亚洲一区免费视频| 国产精品一区二区在线播放| 91丨九色丨国产丨porny| 欧美天堂亚洲电影院在线播放| 欧美老肥妇做.爰bbww| 久久综合色鬼综合色| 亚洲日本青草视频在线怡红院| 日韩精品成人一区二区在线| 国产aⅴ综合色| 欧美日韩国产首页| 国产精品系列在线| 老鸭窝一区二区久久精品| 懂色av一区二区三区免费看| 91免费精品国自产拍在线不卡| 91精品国产免费| 亚洲欧洲综合另类| 美女视频一区在线观看| 色999日韩国产欧美一区二区| 91精品国产综合久久久久久久 | 久久精品一区二区三区不卡 | 亚洲女同女同女同女同女同69| 日韩国产在线观看一区| av午夜一区麻豆| 精品美女一区二区三区| 一卡二卡欧美日韩| 99riav一区二区三区| 久久婷婷国产综合精品青草| 天天综合网 天天综合色| 色综合久久综合| 欧美国产乱子伦 | 午夜精品久久久久久不卡8050| av激情亚洲男人天堂| 精品国产一区二区亚洲人成毛片| 亚洲自拍偷拍图区| k8久久久一区二区三区 | 99re66热这里只有精品3直播 | 国产精品99久久久| 欧美一级生活片| 亚洲国产日日夜夜| 色呦呦网站一区| 日韩久久一区二区| 成人h动漫精品一区二| 国产肉丝袜一区二区| 国产精品18久久久久久久网站| 精品久久久久久久一区二区蜜臀| 久久精品噜噜噜成人88aⅴ| 日韩欧美一区二区久久婷婷| 五月综合激情婷婷六月色窝| 欧美精品色一区二区三区| 天堂久久久久va久久久久| 欧美夫妻性生活| 另类的小说在线视频另类成人小视频在线| 7777精品伊人久久久大香线蕉 | 精品国产免费视频| 国产一区免费电影| 国产欧美精品区一区二区三区 | 岛国一区二区在线观看| 日本一区二区免费在线| 成人av在线播放网站| 亚洲天堂av一区| 欧美日韩综合在线| 另类小说图片综合网| 国产日韩欧美精品综合| 99国产精品国产精品久久| 亚洲国产成人av网| 精品精品欲导航| 东方aⅴ免费观看久久av| 亚洲欧美一区二区三区极速播放 | 欧美一区二区三区在线看| 免费久久精品视频| 久久久青草青青国产亚洲免观| 丰满少妇久久久久久久| 亚洲色图在线视频| 日韩一区二区三区视频| 国产成人午夜电影网| 一区二区三区久久| 欧美成人性战久久| 91污片在线观看| 久久黄色级2电影| 日韩毛片高清在线播放| 日韩一区二区麻豆国产| 国产盗摄女厕一区二区三区| 一区二区三区免费看视频| 精品国产一区二区三区四区四| 成a人片国产精品| 美国欧美日韩国产在线播放| 国产精品伦一区二区三级视频| 欧美日韩电影一区| 成人做爰69片免费看网站| 日韩成人免费在线| 亚洲天堂av一区| 亚洲精品一区二区三区99| 欧美日韩久久久久久| 成人一区二区在线观看| 奇米亚洲午夜久久精品| 亚洲精选在线视频| 中文文精品字幕一区二区| 欧美群妇大交群中文字幕| 91网站在线观看视频| 国产高清不卡二三区| 亚洲自拍偷拍网站| 亚洲婷婷在线视频| 久久精品亚洲一区二区三区浴池| 欧美男男青年gay1069videost| 91一区一区三区| 不卡免费追剧大全电视剧网站| 精品在线你懂的| 午夜欧美大尺度福利影院在线看| 中文字幕综合网| 国产精品久久久久毛片软件| 欧美精品一区二区在线播放| 欧美一级午夜免费电影| 欧美日韩激情一区二区三区| 91年精品国产| 91在线视频18| 91看片淫黄大片一级在线观看| 91免费版在线| 色综合天天性综合|