PDA

View Full Version : سوال: دریافت تاریخ و ساعت محلی از اینترنت



ahrimaneahurai
پنج شنبه 25 آذر 1389, 18:00 عصر
سلام
دوستان از چه سرورهایی می تونم تاریخ و ساعت محلی رو بگیرم ؟
خود سرورها کدی برای این کار دارن ؟
از چه کدی باید استفاده کنم ؟

cardano7
پنج شنبه 25 آذر 1389, 23:44 عصر
دقیق نمی دونم ولی این لینک کمکت می کنه:
http://www.codeproject.com/Questions/83349/Get-DateTime-From-The-Internet.aspx

ahrimaneahurai
جمعه 26 آذر 1389, 09:57 صبح
دوست عزیز لینکی که دادی و از گوگل بود رو گرفتم
فقط برای اسم سرور از اسم سرورهایی که تو خود تنظیمات تاریخ و ساعت ویندوز هست میشه استفاده کرد ؟
چون من خیلی وقت ها می خواستم تاریخ رو از همین سایت ها آپدیت کنم نمیشد و همیشه خطا میده.

ahrimaneahurai
جمعه 26 آذر 1389, 10:43 صبح
دوست عزیز کدی که دادید توی خطی که مشخص کردم گیر میکنه و برنامه نه خطایی میده نه چیزی تو همون خط میمونه
ممنون میشم کمک کنید

public static DateTime GetNetworkTime(IPEndPoint ep)
{
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
s.Connect(ep);
byte[] ntpData = new byte[48];
ntpData[0] = 0x1B;
for (int i = 0; i < 48; i++)
{
ntpData[i] = 0;
}
s.Send(ntpData);
s.Receive(ntpData);
byte offsetTransmitTime = 40;
ulong intpart = 0;
ulong fractpart = 0;
for (int i = 0; i <= 3; i++)
intpart = 256 * intpart + ntpData[offsetTransmitTime + i];

for (int i = 4; i <= 7; i++)
fractpart = 256 * fractpart + ntpData[offsetTransmitTime + i];

ulong milliseconds = (intpart * 1000 + (fractpart * 1000) / 0x100000000L);
s.Close();

TimeSpan timeSpan = TimeSpan.FromTicks((long)milliseconds * TimeSpan.TicksPerMillisecond);

DateTime dateTime = new DateTime(1900, 1, 1);
dateTime += timeSpan;

TimeSpan offsetAmount = TimeZone.CurrentTimeZone.GetUtcOffset(dateTime);
DateTime networkDateTime = (dateTime + offsetAmount);

return networkDateTime;
}

ahrimaneahurai
جمعه 26 آذر 1389, 12:57 عصر
دوستان من کدهای دیگه ای رو از vb به #C تبدیل کردم اما هنوز مشکل دارم
دوستان کسی کد دیگه ای سراغ نداره ؟