6

对于我的 MFC/C++ 非托管限时软件需求,我想从 Internet 获取 GMT/UTC 时间戳(而不是依赖可以轻松更改的 PC 时钟时间)。

我已经考虑过解析来自http://www.timeanddate.com/worldclock/的行“当前 UTC”... 行(我认为端口 80 比其他端口更有可能打开)但我不知道有多可靠这个网址是...

请与我分享您对此的优缺点或不同的想法。

谢谢。

4

7 回答 7

7

使用 SNTP(简单网络时间协议)从互联网原子钟获取时间。

网络上有一些库可用 -这是 codeproject 上的 MFC 库

于 2010-03-05T13:14:40.057 回答
3

看起来可行,并且已广泛使用。

如果站点决定更改其 HTML,则 timeanddate.com 的抓取可能会中断。即使是 HTML 中的微小变化也会破坏您的抓取工具。

我建议您使用类似earthtools的网络服务。您必须在 URL 中传递必要的参数(纬度和经度等),并且响应是您可以轻松解析的 XML。

于 2010-03-05T13:17:26.493 回答
1

让你的程序更好,而不是浪费时间试图保护它。您可以做的任何此类保护都将很容易被规避。如果您坚持,您可以在您的服务器上运行该软件,因为这是实际执行此类限制的唯一方法。

于 2010-03-05T13:17:23.967 回答
1

好吧,总结一下:我的应用程序包含一个离线数据库,每天从 Intranet 更新一次。
如果这个数据库超过一周没有更新,我想粉碎这个数据库,这就是为什么我想尝试减少有人只是向后更改 PC 时钟的可能性。
我完全意识到有高级用户可能会以 20 种不同的方式阻止我的应用程序获得互联网时间,但我正在尽我所能在软件方面做到最好(硬件解决方案,例如加密狗,是对我来说太过分了)。

由于我想要一个端口 80 的解决方案,我将采用 codaddict 的解决方案(earthtools),否则将对 PC 时钟进行采样。

感谢所有的答复!

于 2010-03-07T13:20:17.793 回答
0

嗯。有趣的。您基本上是在尝试将 Internet 用作加密狗。

如果您真的需要对您的软件进行这种“保护”,您或许应该考虑获得一个带有实时时钟的真正加密狗,例如HASP。当然,对于一个拥有反汇编程序的体面的黑客来说,这两种解决方案都是微不足道的。

一般来说,我认为最好打开你的软件并尝试靠修复、模组和支持来生活。

于 2010-03-05T14:11:30.587 回答
0

答案就在您的问题之内...转到https://www.timeanddate.com/并查找“API”,您将找到此页面: https ://www.timeanddate.com/services/api/ 详细说明: https://services.timeanddate.com/api/packages/time.html 使用他们的 API,您可以发送请求并接收 XML 或 JSON 响应。它每年花费你 150 美元,但这是专业的做法,因为你的目的是为你的软件收费,所以这是有道理的。

于 2017-02-04T20:17:01.103 回答
0

美国国家标准与技术研究院 (NIST) 互联网时间服务器

参考资料 https://www.nist.gov/pml/time-and-frequency-division/time-distribution/internet-time-service-its

https://tf.nist.gov/tf-cgi/servers.cgi

于 2021-12-17T06:38:57.713 回答