我想从外部可靠来源获取DateTime。我知道我可以通过DateTime.Now()方法获得它,但是可以通过更改系统日期和时间来轻松上当。有办法吗?这是一个Windows窗体应用程序!
答案 0 :(得分:1)
您需要网络时间服务器客户端类 简而言之,您可以通过Internet上的众多时间服务器之一询问使用NTP protocol设置内部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时钟。
答案 1 :(得分:0)
虽然您可以在应用中实现Network Time Protocol客户端并通过网络请求当前时间或从某个http服务器请求某些内容并使用Date
响应标头中的时间,但这也可能被欺骗(可以拦截流量并代表您将要连接的时间服务器向您发送响应或调整http响应)。
尽管如此,最简单的方法是从某个http服务器获得响应。