从可靠的外部来源获取日期时间

时间:2012-10-21 15:02:28

标签: visual-studio-2010 c#-4.0 datetime

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

2 个答案:

答案 0 :(得分:1)

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

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

来自Bing搜索的

This is the first

引用:

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时钟。

答案 1 :(得分:0)

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

尽管如此,最简单的方法是从某个http服务器获得响应。