通过IP地址定位地址,是要通过查询数据库,如果自己做一个这样的数据库工作量就比较大,所以在网上找了一个查询IP地址的网址,通过调用这个网址查询来实现,但是这个有一定的弊端,如果没有网络或者这个网址不可用时,就无法查询。具体代码如下:
QEventLoop loop;
QNetworkAccessManager manager;QNetworkReply *pReply = manager.get(QNetworkRequest(QUrl("http://www.ip38.com/"))); // http://www.ip38.com/index.php?ip=您的IP
connect(pReply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
QByteArray byte = pReply->readAll();
QString strTemp;
strTemp = strTemp.fromLocal8Bit(byte.data());
int nStartIndex = strTemp.indexOf("<div id=\"ipadcode\" style=\"display:none\">");
if (nStartIndex >= 0)
{
nStartIndex += strlen("<div id=\"ipadcode\" style=\"display:none\">");
int nEndIn