首先,我试过了:
string URL = "http://google.com";
System.Net.HttpWebRequest rq2 = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(URL);
System.Net.HttpWebResponse res2 = (System.Net.HttpWebResponse)rq2.GetResponse();
DateTime xd = rq2.Date;
但这是缓慢的,并且不包含毫秒。
然后我发现,我实际上可以从目标服务器使用的ntp服务器获取服务器的时间。
InternetTime.SNTPClient sntp = new InternetTime.SNTPClient("time-b.timefreq.bldrdoc.gov");
sntp.Connect(false); // true to update local client clock
DateTime dt = sntp.DestinationTimestamp.AddMilliseconds(sntp.LocalClockOffset);
string timeStampNow = dt.ToString("dd/MM/yyyy HH:mm:ss.fff");
它工作得很好,不过,我不知道我的目标服务器是否使用NTP服务器,如果是的话,我不知道如何找到它。我花了很多时间研究,所以我决定在这里问问。
edit2:我没有任何访问该服务器(除了访问它的WWW页面),我知道,服务器正在使用微软IIS/7.5网络服务器。
2013-03-01
Patryk
+0
究竟是什么意思?当你得到它的时候将会(有点)陈旧。 –
2013-03-01 19:17:32
+0
嗯,我可以计算延迟,所以我有时间类似于原始 –
2013-03-01 19:22:41
+0
不,你不能计算延迟。因为在请求处理期间您不知道何时检索到时间值。即使你这样做了,你也无法可靠地确定服务器的响应需要多长时间。 –
2013-03-01 19:33:32