此方法后续需要优化,先暂时使用!
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("http://www.net.cn/static/customercare/yourip.asp")));
QEventLoop eventLoop;
QTimer m_timer;
QString data1;
QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));
connect(&m_timer, SIGNAL(timeout()), &eventLoop, SLOT(quit()));
eventLoop.exec();
m_timer.start(5000);
if(m_timer.isActive())
{
m_timer.stop();
QString data = reply->readAll();
int len1 = data.indexOf("<h2>");
int len2 = data.indexOf("</h2>");
data1 = data.mid(len1+4,len2-len1-4);
}
eventLoop.deleteLater();
m_timer.deleteLater();
delete manager;
return data1;//公网IP