0

我想从外部可靠来源获取 DateTime。我知道我可以通过 DateTime.Now() 方法获得它,但是通过更改系统日期和时间很容易被愚弄。有办法吗?这是一个Windows窗体应用程序!

4

2 回答 2

1

您需要一个网络时间服务器客户端类。
简而言之,您向 Internet 上众多时间服务器之一询问日期和时间,以使用NTP 协议设置您的内部 PC 时钟。

如果您搜索 NTP 客户端,您会发现许多示例。

这是第一个来自 Bing 搜索的

报价:

The Network Time Protocol (NTP) and its simplified form (SNTP) are widely used to 
synchronize network resources, due to their simplicity and effectiveness.

当然,由于所有东西都安装在客户端 PC 上,这也可能被黑客伪造时间服务器的地址并返回不同的值。但这需要黑客做更多的工作,而不是简单地重置 PC 时钟。

于 2012-10-21T15:10:31.620 回答
0

虽然您可能会在您的应用程序中实现网络时间协议客户端并通过网络请求当前时间或从某个 http 服务器请求某些内容并使用Date响应标头中的时间,但这也可能被愚弄(一个可能会拦截流量并向您发送代表您将连接或调整 http 响应的时间服务器的响应)。

不过,最简单的方法是从某个 http 服务器获得响应。

于 2012-10-21T15:11:18.757 回答