https://tf.nist.gov/tf-cgi/servers.cgi 时间服务器列表
直接用ip访问时间服务器比较好。
20200620增加16个时间服务器列表。
bool IsHaveAuthorization()
{
QDateTime temp_t2 = QDateTime::fromString("2020-06-30 00:00:00", "yyyy-MM-dd hh:mm:ss");
//https://tf.nist.gov/tf-cgi/servers.cgi 时间服务器列表
QStringList time_server_list;
time_server_list
<< "129.6.15.28"
<< "129.6.15.29"
<< "129.6.15.30"
<< "129.6.15.27"
<< "129.6.15.26"
<< "132.163.97.1"
<< "132.163.97.2"
<< "132.163.97.3"
<< "132.163.97.4"
<< "132.163.97.6"
<< "132.163.96.1"
<< "132.163.96.2"
<< "132.163.96.3"
<< "132.163.96.4"
<< "132.163.96.6"
<< "128.138.140.44"
<< "128.138.141.172";
bool bConnect = false;
QString str;
for each (const QString &ip_temp in time_server_list)
{
QTcpSocket *socket = new QTcpSocket();
socket->connectToHost(ip_temp, 13);
bConnect = socket->waitForConnected(300);
if (bConnect)
{
bConnect = socket->waitForReadyRead(300);
if (bConnect)
{
str = socket->readAll();
socket->close();
delete socket;
break;
}
else
{
socket->close();
delete socket;
}
}
else
{
socket->close();
delete socket;
}
}
bool bret = false;
if (bConnect)
{
str = str.trimmed();
str = str.section(" ", 1, 2);//20-06-13 05:04:31
str = QString("20") + str;
QDateTime temp_t = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");
temp_t.addSecs(60 * 60 * 8);//+8时区
if (temp_t < temp_t2)
{
bret = true;
}
else
{
bret = false;
}
}
else
{
bret = false;
//取本地时间。
//QDateTime temp_t = QDateTime::currentDateTime();
//if (temp_t < temp_t2)
//{
// bret = true;
//}
//else
//{
// bret = false;
//}
}
return bret;
}