if(searchIpNum<0xFF)...{
return -1;
}
ifstream fs;
fs.open(dat, ios::binary | ios::in, 0);
if((!fs.is_open()) || (!fs.good())) ...{
return -2;
}
#if defined _DEBUG_
cout<<" searchIpNum="<<searchIpNum<<", exeOffset="<<exeOffset<<endl;
#endif
fs.seekg(exeOffset, ios_base::beg);
ipBeginPos=read4Bit(fs);
#if defined _DEBUG_
cout<<" ipBeginPos="<<ipBeginPos<<endl;
#endif
ipEndPos=read4Bit(fs);
#if defined _DEBUG_
cout<<" ipEndPos="<<ipEndPos<<endl;
#endif
totalNum = (ipEndPos - ipBeginPos) / 7;
#if defined _DEBUG_
cout<<" totalNum="<<totalNum<<endl;
#endif
if(totalNum<1)...{
return -3;
}
beginNum = 0;
endNum = totalNum;
while( 1 ) ...{ //IP的索引是有順序的,按照個數來二分查找.
midNum= beginNum+(DWORD)((endNum - beginNum)/2);
pos = ipBeginPos+midNum*7;
fs.seekg(exeOffset+pos, ios_base::beg);
#if defined _DEBUG_
cout<<"times="<<++times<<", beginNum="<<beginNum<<", endNum="<<endNum
<<", midNum="<<midNum<<", exeOffset+pos="<<exeOffset+pos
<<endl;
#endif
ip1Num=read4Bit(fs);
if( ip1Num<1 ) ...{
fs.close(); cout<<"[1]while(){...}"<<endl;
return -2;
}
#if defined _DEBUG_
//printIpNum(ip1Num);
#endif
fs.seekg(3, ios_base::cur);
ip2Num=read4Bit(fs);
if( ip2Num<1 ) ...{
fs.close(); cout<<"[3]while(){...}"<<endl;
return -2;
}
#if defined _DEBUG_
//printIpNum(ip2Num);
#endif
希望这篇
C++ 查詢wry.dat中的IP地址信息代码(2)的文章能够对您有所帮助,如果您觉得这篇网站维护教程有用的话,别忘了推荐给您的朋友哦!如果您有好的经验方法,不妨拿出来和大家一起分享:假如每个人都拿出一个经验,那么我们都将额外的获取一堆他人的经验。
请记住本站永久域名:(黑客防线网安服务器维护方案维护基地)Www.Rongsen.Com.Cn