تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
اريد الحصول على تاريخ اليوم عن طريق الانترنت وليس عن طريق الجهاز
#1
السلام عليكم
اريد الحصول على الوقت والتاريخ عن طريق الانترنت لضبط وقت وتاريخ الكمبيوتر
كيف يتم ذلك وجزاكم الله خيرا
الرد }}}}
تم الشكر بواسطة:
#2
اولا يجب ان تحدد سيرفر تعتمد عليه

يعني بالاحرى . حدد موقع يمكنك اخذ التاريخ منه

مثلا هذا الموقع

http://nist.time.gov/timezone.cgi?UTC/s/0

يعرض لك الوقت حسب توقيت الولايات المتحدة


بعده ان تحدد الموقع الذي تريد سحب الوقت منه
قم باستخدام الطلبات Web Requser
وسبق ان وضعت مقالة حول ذلك في قسم مقالات سي شارب

ثم بعد ان يتم ارسال الرد على طلبك
قم بتحليل الرد واخراج الوقت

ثم استعمال دالة API لتعديل وقت جهازك

PHP كود :
<StructLayout(LayoutKind.Sequential)> _
Public Structure SYSTEMTIME
    
Public wYear As Short
    
Public wMonth As Short
    
Public wDayOfWeek As Short
    
Public wDay As Short
    
Public wHour As Short
    
Public wMinute As Short
    
Public wSecond As Short
    
Public wMilliseconds As Short
End Structure
<DllImport("kernel32.dll"SetLastError := True)> _
Public Shared Function SetSystemTime(ByRef theDateTime As SYSTEMTIME) As Boolean
End 
Function 
الرد }}}}
تم الشكر بواسطة:
#3
الشاكي لله كتب :اولا يجب ان تحدد سيرفر تعتمد عليه

يعني بالاحرى . حدد موقع يمكنك اخذ التاريخ منه

مثلا هذا الموقع

http://nist.time.gov/timezone.cgi?utc/s/0

يعرض لك الوقت حسب توقيت الولايات المتحدة


بعده ان تحدد الموقع الذي تريد سحب الوقت منه
قم باستخدام الطلبات web requser
وسبق ان وضعت مقالة حول ذلك في قسم مقالات سي شارب

ثم بعد ان يتم ارسال الرد على طلبك
قم بتحليل الرد واخراج الوقت

ثم استعمال دالة api لتعديل وقت جهازك

PHP كود :
<structlayout(layoutkind.sequential)> _
public structure systemtime
    
public wyear as short
    
public wmonth as short
    
public wdayofweek as short
    
public wday as short
    
public whour as short
    
public wminute as short
    
public wsecond as short
    
public wmilliseconds as short
end structure
<dllimport("kernel32.dll"setlasterror := true)> _
public shared function setsystemtime(byref thedatetime as systemtime) as boolean
end 
function 

شكراً و أعجبني للمشاركة
شكراً شكر هذه المشاركة msdos
أعجبني معجب بهذه المشاركة msdos
الرد }}}}
تم الشكر بواسطة:
#4
أيضاُ

وجدت لك الدالة GetFastestNISTDate وكما يدل اسمها Fastest الأسرع
كود :
Public Function GetFastestNISTDate() As DateTime
    Dim result = DateTime.MinValue
    ' Initialize the list of NIST time servers
    ' http://tf.nist.gov/tf-cgi/servers.cgi
    Dim servers As String() = New String() {"nist1-ny.ustiming.org", "nist1-nj.ustiming.org", "nist1-pa.ustiming.org", "time-a.nist.gov", "time-b.nist.gov", "nist1.aol-va.symmetricom.com", _
     "nist1.columbiacountyga.gov", "nist1-chi.ustiming.org", "nist.expertsmi.com", "nist.netservicesgroup.com"}

    ' Try 5 servers in random order to spread the load
    Dim rnd As New Random()
    For Each server As String In servers.OrderBy(Function(s) rnd.NextDouble()).Take(5)
        Try
            ' Connect to the server (at port 13) and get the response
            Dim serverResponse As String = String.Empty
            Using reader = New IO.StreamReader(New System.Net.Sockets.TcpClient(server, 13).GetStream())
                serverResponse = reader.ReadToEnd()
            End Using

            ' If a response was received
            If Not String.IsNullOrEmpty(serverResponse) Then
                ' Split the response string ("55596 11-02-14 13:54:11 00 0 0 478.1 UTC(NIST) *")
                Dim tokens As String() = serverResponse.Split(" "c)

                ' Check the number of tokens
                If tokens.Length >= 6 Then
                    ' Check the health status
                    Dim health As String = tokens(5)
                    If health = "0" Then
                        ' Get date and time parts from the server response
                        Dim dateParts As String() = tokens(1).Split("-"c)
                        Dim timeParts As String() = tokens(2).Split(":"c)

                        ' Create a DateTime instance
                        Dim utcDateTime As New DateTime(Convert.ToInt32(dateParts(0)) + 2000, Convert.ToInt32(dateParts(1)), Convert.ToInt32(dateParts(2)), Convert.ToInt32(timeParts(0)), Convert.ToInt32(timeParts(1)), Convert.ToInt32(timeParts(2)))

                        ' Response successfully received; exit the loop

                        Return result
                    End If

                End If

            End If
            ' Ignore exception and try the next server
        Catch
        End Try
    Next
    Return result
End Function
الرد }}}}
تم الشكر بواسطة:
#5
طريقة استعمال الدالة GetFastestNISTDate
كود :
' بالتوقيت العالمي
TextBox1.Text = GetFastestNISTDate()

' لتحويل التوقيت العالمي لفارق التوقبت لمنطقتك
TextBox1.Text = GetFastestNISTDate().ToLocalTime()
الرد }}}}
تم الشكر بواسطة:
#6
وهذه الدالة قمت باختصارها وتحسينها

كود :
Public Function GetInternetTime(ByVal host As String, Optional ByVal ToLocalTime As Boolean = False) As DateTime
    Dim timeStr As String
    Dim reader As New IO.StreamReader(New Net.Sockets.TcpClient(host, 13).GetStream)
    Dim LastSysTime As DateTime
    LastSysTime = DateTime.UtcNow()
    timeStr = reader.ReadToEnd
    reader.Close()


    Dim year As Integer = CInt(timeStr.Substring(7, 2)) + 2000
    Dim month As Integer = CInt(timeStr.Substring(10, 2))
    Dim day As Integer = CInt(timeStr.Substring(13, 2))
    Dim hour As Integer = CInt(timeStr.Substring(16, 2))
    Dim minute As Integer = CInt(timeStr.Substring(19, 2))
    Dim second As Integer = CInt(timeStr.Substring(22, 2))

    If ToLocalTime Then
        Return New DateTime(year, month, day, hour, minute, second).ToLocalTime
    Else
        Return New DateTime(year, month, day, hour, minute, second)
    End If
End Function
الرد }}}}
تم الشكر بواسطة:
#7
طريقة استعمال الدالة GetInternetTime

كود :
' بالتوقيت العالمي
TextBox1.Text = GetInternetTime("time.nist.gov")

' لتحويل التوقيت العالمي لفارق التوقبت لمنطقتك
TextBox1.Text = GetInternetTime("time.nist.gov", True)
الرد }}}}
تم الشكر بواسطة:
#8
ملاحظة هامة:

قد تتأخر كثيراً الاستجابة في أوقات مختلفة وذلك من كل مواقع توقيت النت، حتى أنك تشعر في بعض الأحيان ان الدالة غير صحيحة وهي ليست كذلك (لا أدري ما السبب).
الرد }}}}
تم الشكر بواسطة:
#9
هذه بعض مواقع التوقيت التي تعمل حتى الآن
كود :
TextBox1.Text = GetInternetTime("time-a.timefreq.bldrdoc.gov")'132.163.4.101
TextBox1.Text = GetInternetTime("time-c.timefreq.bldrdoc.gov") '132.163.4.103
TextBox1.Text = GetInternetTime("utcnist.colorado.edu") '128.138.140.44
TextBox1.Text = GetInternetTime("time-d.nist.gov") '129.6.15.27
TextBox1.Text = GetInternetTime("time.nist.gov") '129.6.15.29
الرد }}}}
تم الشكر بواسطة:
#10
طريقة اخرى اخي العزيز ....


بدل من الاعتماد على موقع خاص

يمكننا تصميم خدمة ويب (web service)

وفي خدمة الويب نسوي دالة تقوم بحساب الوقت والتاريخ على سيرفر (قم بتركيبها على استضافة)

ثم من برنامجنا نقوم بسحب التاريخ والوقت بسهوووولة وبدون request و response وبدون تحليلات وخرابيط
فقط نقوم باستدعاء دالة جلب الوقت من الخدمة الي سويناها << بسيط صح !!


-
اصلا مافي ضمان على هالمواقع الذي ذكرها اخوي MSDOS

ماذا لو تم اغلاقها . هل سيتعطل برنامجك ؟؟؟ < اكيد
ماذا لو تم تغير سكربت الموقع ولم يكن باستطاعتك قراءة الوقت ؟؟ هل ستقوم بتنزيل ابديت لبرنامجك لحل هذه المشكلة !!
لماذا لانسهل الامور ونستخدم الطرق الصحيحة!


الطريق الصحيح والاحترافي هو باستعمال Web Service وهي التقنية التي بدت تسخدمها اغلب التطبيقات

انتظروني في مقالة كاملة تتحدث عنها قريبا

ضمن [سلسلة التعامل مع الويب] ومضاف لها التحكم الخارجي

الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] حفظ تاريخ معين بقاعدة البيانات توفي العراقي 3 67 منذ 5 ساعة مضت
آخر رد: ali.alfoly
  تغير تاريخ الفورم ddemed 0 36 01-12-16, 06:37 PM
آخر رد: ddemed
  [سؤال] كود البحث عن طريق اسم naden 1 68 28-11-16, 02:05 PM
آخر رد: Adrees
  sms كيف أرسل عن طريق برنامجي adel27 6 117 22-11-16, 09:17 PM
آخر رد: adel27
  [VB.NET] ربط الداتا بيز بالكريستال ريبورت عن طريق الكود thevirus 3 93 22-11-16, 02:38 PM
آخر رد: thevirus
  الاخوة الاعزاء ابحث عن مثال للتنبيه بقرب انتهاء تاريخ بشرط ان احدد المدة trfa8899 4 126 21-11-16, 11:00 AM
آخر رد: trfa8899
  استدعاء داتا من الداتا بيز عن طريق المعالج araxis 14 278 15-11-16, 07:17 AM
آخر رد: araxis
  [سؤال] ماهى جملة الاستعلام المناسبة للاستعلام عن قيم طبقا لاحدث تاريخ محمود بكرى 5 158 12-11-16, 12:52 AM
آخر رد: محمود بكرى
  استدعاء ملف به تاريخ للبرنامج وتشغيل الفورم به ddemed 8 145 11-11-16, 10:25 PM
آخر رد: bidaya
  [سؤال] هل يمكن عرض عناصر الكومبوبوكس عن طريق الكود ؟؟؟؟؟؟؟؟؟؟؟؟ thevirus 1 96 10-11-16, 06:25 PM
آخر رد: أبو عمر

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم