общественного DateTime GetNetworkTime (строка NtpServer) {хостинг дисплей сервера Unversal время
//const string ntpServer = "tritonadmin.com";
const int timeout = 2000;
var ntpData = new byte[48];
ntpData[0] = 0x1B; //LeapIndicator = 0 (no warning), VersionNum = 3 (IPv4 only), Mode = 3 (Client Mode)
try
{
var addresses = Dns.GetHostEntry(ntpServer).AddressList;
var ipEndPoint = new IPEndPoint(addresses[0], 123);
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
// wait two seconds before timing out
socket.ReceiveTimeout = timeout;
socket.Connect(ipEndPoint);
socket.Send(ntpData);
var receivedBytes = 0;
receivedBytes = socket.Receive(ntpData);
ulong intPart = (ulong)ntpData[40] << 24 | (ulong)ntpData[41] << 16 | (ulong)ntpData[42] << 8 | (ulong)ntpData[43];
ulong fractPart = (ulong)ntpData[44] << 24 | (ulong)ntpData[45] << 16 | (ulong)ntpData[46] << 8 | (ulong)ntpData[47];
var milliseconds = (intPart * 1000) + ((fractPart * 1000)/0x100000000L);
var networkDateTime = (new DateTime(1900, 1, 1)).AddMilliseconds((long)milliseconds) ;
socket.Close();
return networkDateTime;
}
catch (SocketException ex)
{
DateTime s = new DateTime(1900, 1, 1);
return s;
}
}
Above code is working fine in local host server but when i am hosting the code in windows server then it will show standard time (Mon, 01 Jan 1900 00:00) and also hosting in NTP server and getting the time from own server time it will show utc time not for that system time.
В сервере NTP он будет показывать правильное время в течение некоторого времени NTP-серверы, как pool.ntp.org. Но когда я ввожу имя своего собственного ntp-сервера «tritonadmin.com», он показывает время UTC, а не время моего ntp-сервера.
Отметьте мой предоставленный ответ .. – Shirish