تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
فائدة - كيفية عمل Ping
#1
كاتب الموضوع : أبو عابد

السلام عليكم ورحمة الله وبركاته


أمر Ping في الشبكات يستخدم لفحص الاتصال بين الجهاز المحلي و جهاز أخر على الشبكة بواسطة الـ IP الخاص به .

وطريقته هو إرسال كمية من البايتات من الجهاز المرسل إلى المستقبل و يقوم المستقبل بالرد على هذه البايتات (بنفس العدد و الحجم) وهو ما يمسى بـ Replay .
يقوم بعد ذلك الجهاز المرسل بفحص البايتات العائدة من الجهاز المستقبل و يقارنها بالبايتات المرسلة ليظهر بعد ذلك نتيجة الاتصال بين الجهازين عبر إحصائية تمثل عدد المرسل و المفقود و الوقت المستغرق للوصول (عدد القفزات) .

بإمكانك تجربة هذا الأمر عن طريق الدوس .

إبدأ Start
ثم > تشغيل Run
ثم اكتب cmd

ستظهر لك شاشة سوداء ، أكتب فيها Ping ثم عنوان IP لأي جهاز على الشبكة ( لضمان وجود رد أكتب الـ IP التالي 127.0.0.1 وهو عنوان الجهاز نفسه)

بعد الضغط على زر Enter ستظهر لك نتيجة الاختبار .


حسناً ،،،

نستطيع في الدوت نت تنفيذ هذا الأمر كالتالي :

إنشاء كائن pingSender من الفئة Ping


كود :
Dim pingSender As New Ping

الآن نستطيع إرسال بايتات إلى الجهاز المستقبل بواسطة الوظيفة Send التابعة للفئة Ping كالتالي :


كود :
pingSender.Send(strIPAddress, intTimeOut, buffer)
حيث أن الوسائط هي :
1- قيمة نصية String تمثل عنوان الجهاز المشتقبل .
2- قيمة عددية Integer تمثل الوقت الأقصى الذي يمكن فيه انتظار رد المستقبل .
3- مصفوفة من نوع Byte سيحمل حجم البايتات المرسلة للجهاز المستقبل .

ولأجل تحقيق الفائدة من هذا كله يجب علينا قراءة القيم العائدة من هذا الاختبار .

سنحتاج للإعلان عن كائن Reply من الفئة PingReply لأجل أن يستقبل تلك القيم .

وعلى هذا يكون الكود كالتالي :


كود :
Dim Reply As PingReply = pingSender.Send(strIPAddress, intTimeOut, buffer)

الآن يجب أن نختبر الكائن Replay هل نجح في عمله أم لا :


كود :
If Reply.Status = IPStatus.Success Then
بعد ذلك نستطيع أن نقرأ أعضاء الكائن و التي تحتوي على نتائج ذلك الاختبار .



لقد غلفت هذه العملية بوظيفة كالتالي :

كود :
Public Sub PingIP(ByVal strIPAddress As String, _
Optional ByVal intTimeOut As Integer = 120, _
Optional ByVal intBuffer As Integer = 32, _
Optional ByVal blnDontFragment As Boolean = True, _
Optional ByVal TTL As Integer = 128)

Try

Dim pingSender As New Ping

'Genrate Buffer
Dim strBuffer As String = ""
For ii As Integer = 1 To intBuffer
strBuffer += "1"
Next

Dim buffer As Byte() = System.Text.Encoding.ASCII.GetBytes(strBuffer)
Dim Reply As PingReply = pingSender.Send(strIPAddress, intTimeOut, buffer, New PingOptions(TTL, blnDontFragment))

If Reply.Status = IPStatus.Success Then
MsgBox("IP : " & Reply.Address.ToString() & vbNewLine & _
"Length : " & Reply.Buffer.Length & vbNewLine & _
"RoundtripTime : " & Reply.RoundtripTime & vbNewLine & _
"Time To Live : " & Reply.Options.Ttl)
Else
MsgBox("No Replay")
End If

Catch ex As Exception
MessageBox.Show(ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

End Sub



أتمنى أن أكون قدمت لكم شيئاً مفيداً
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  شرح كيفية برمجة( مثال نسخ الملفات من مكان انت تحدده الى مكان انت تحدده بامتداد انت تحدده) سعود 5 8,087 04-09-19, 04:32 AM
آخر رد: سعود
  شرح كيفية صنع محرر html واستخدامه كـ dll سعود 6 5,986 26-08-13, 09:21 PM
آخر رد: Sajad
  كيفية عمل صورة - مدورة - Rouded PictureBox ! RaggiTech 0 2,889 17-10-12, 09:55 PM
آخر رد: RaggiTech
  كيفية عمل String عشوائي ! RaggiTech 0 2,686 17-10-12, 09:54 PM
آخر رد: RaggiTech
  كيفية تحويل DataTable إلى Object List RaggiTech 0 2,505 17-10-12, 07:27 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 2,199 17-10-12, 07:24 PM
آخر رد: RaggiTech
  للمبتدئين كيفية صنع فورم على شكل قلب او دائرة او متقاطعات او ما شابه مثال مع شرح مبسط RaggiTech 0 2,530 17-10-12, 07:15 PM
آخر رد: RaggiTech
  للمبتدئين فقط..كيفية عمل برنامج صغير (عداد لحساب الذاكرة المستخدمة بالجهاز) RaggiTech 0 2,352 17-10-12, 07:13 PM
آخر رد: RaggiTech
  كيفية نقل بيانات من قاعدة بيانات اكسس الى ملف اكس ام ال RaggiTech 0 3,161 17-10-12, 07:12 PM
آخر رد: RaggiTech
  كيفية رسم صورة متحركة على الفورم بدون تايمر RaggiTech 0 2,488 17-10-12, 07:11 PM
آخر رد: RaggiTech

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


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