【问题标题】:Retrieve time from the internet (bypassing PC clock)?从互联网上检索时间(绕过 PC 时钟)?
【发布时间】:2021-12-17 14:38:57
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 如果此人使用他们的软件防火墙阻止您的应用访问互联网怎么办?
  • 黑客可以编写软件来模拟服务时间
  • 是的,在 /etc/hosts 中有一个简单的条目,用于将对 timeanddate.com 的请求重定向到我控制的服务器,我将其配置为返回我将 PC 时钟更改为的任何时间。工作完成。
  • 如果您必须获取时间/日期,请按设计使用 pool.ntp.org。
  • 好吧,我会尝试在下面使用 gbjbaanb 的建议。

标签: c++ time protection trialware


【解决方案1】:

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

网络上有一些可用的库 - here's one for MFC on codeproject

【讨论】:

  • 谢谢,我知道 SNTP,但我认为端口 80 的阻塞比端口 123 少。这就是为什么我打算使用端口 80 解决方案。不管怎样,我会试试这个。谢谢。
【解决方案2】:

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

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

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

【讨论】:

  • 这很酷!我不知道earthtools。因为我正在寻找 UTC,所以为 long/lat 给出 0,0 对我来说就足够了,并且 XML 的解析很容易。但这项服务的可靠性如何?我怎么知道这个 URL 不会在一段时间内中断?
  • (*) 它说我需要 15 个声望点来提高你的投票.. 所以如果可以的话我会.. 谢谢。
  • 看来earthtools 已移至此链接new.earthtools.org/webservices.htm
【解决方案3】:

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

【讨论】:

  • 谢谢,但我无法在服务器上运行它。
  • 如果不是为了保护呢?如果有人想为没有内部时钟但可以访问互联网的设备(例如:Raspberry PI)制作程序怎么办。是的,我知道这里不是这种情况.. 但我们也应该考虑另一边
【解决方案4】:

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

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

感谢大家的回复!

【讨论】:

    【解决方案5】:

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

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

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

    【讨论】:

    • 谢谢,但是加密狗是多余的。我想保护一些数据,我想通过软件尽可能地保护它,但如果我做不到它也不会是一场灾难。我正在尝试这样做以扩大我的编程视野。
    【解决方案6】:

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

    【讨论】:

    • 任何时候您推荐付费解决方案时,都必须说明您是否与该产品有任何关联。
    • 我刚刚在互联网上找到了它们,所以答案是否定的。我不是。我还没试过,我们打算试试。
    • 我在任何地方都没有写过我打算为我的软件收费,我也没有发布问题来寻找第三方解决方案。您在问题线程上写的答案要好得多,而且中肯(不是该软件不再存在)。
    【解决方案7】:

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    猜你喜欢
    • 2010-10-11
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多