الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لأهل الخبرة : ما هو الكود الذي يمكنني من التأكد بأن جهازي متصل بالإنترنت ؟

مغلق
بدأه anonym في 16 سبتمبر 2006 · 17 رد · 1,240 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

مرحبا ً بالجميع

وبارك الله لكم في شعبان وبلغكم رمضان

سؤالي بسيط وهو عنوان هذا الموضوع

ما هو الكود الذي يمكنني من التأكد بان جهازي متصل بالإنترنت

أي في حين كان الجهاز متصل بالنت : يقوم بتنفيذ عملية معينه

واذا كان الجهاز غير متصل بالإنترنت

يقوم بعرض رسالة (أنت غير متصل بالإنترنت)

أتمنى التوضيح

ولكم تحيتي وتقديري

#2

اخى اعتقد انه الاتي

ضع الكود التالي في الموديل

Public Declare Function RasEnumConnections Lib "RasApi32.dll" Alias _
	"RasEnumConnectionsA" (lpRasCon As Any, lpcb As Long, _
	lpcConnections As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.dll" Alias _
	"RasGetConnectStatusA" (ByVal hRasCon As Long, lpStatus As Any) As Long
Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceType = 16
Public Const RAS95_MaxDeviceName = 32

Public Type RASCONN95
dwSize As Long
hRasCon As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

Public Type RASCONNSTATUS95
dwSize As Long
RasConnState As Long
dwError As Long
szDeviceType(RAS95_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type

ثم هذا الكود في الفورم

Public Function IsConnected() As Boolean

	Dim TRasCon(255) As RASCONN95
	Dim lg As Long
	Dim lpcon As Long
	Dim RetVal As Long
	Dim Tstatus As RASCONNSTATUS95

	TRasCon(0).dwSize = 412
	lg = 256 * TRasCon(0).dwSize

	RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)

	If RetVal <> 0 Then
		MsgBox "ERROR"
		Exit Function
	End If

	Tstatus.dwSize = 160
	RetVal = RasGetConnectStatus(TRasCon(0).hRasCon, Tstatus)

	If Tstatus.RasConnState = &H2000 Then
		IsConnected = True
	Else
		IsConnected = False
	End If

End Function

و يمكنك وضع command button للتأكد من وجود اتصال

Private Sub Command1_Click()
	If IsConnected() = True Then
		MsgBox ("الجهاز متصل بالانترنت")
	Else
		MsgBox ("الجهاز غير متصل بالانترنت")
	End If
End Sub

نتمنى الدعاء

تم تعديل هذه المشاركة بواسطة شمس الزناتي في 16 سبتمبر 2006 في 02:36

خطوات فيجوالية

--------------------------------------

التحزيم بواسطة Package & Deployment Wizard

أداة all date للتعامل مع الوقت

التعامل مع app.path دروس للمبتدئين

اصنع ocx من تصميمك لجميع احتيجاتك دروس للمبتدئين

شرح برنامج fack foder لحماية الفهارس

مواضيع اخرى

--------------------------------------

سجل بياناتك للاشتراك في رابطة المبرمجين المصريين, للاخوة المصريين او العرب المقيمين بمصر

عني = about me

--------------------------------------

مدونتي مصري للنهاية

--------------------------------------

على اسم مصر التاريخ يقدر يقول ما شاء ............... انا مصر عندي احب و اجمل الاشياء

#3

أخي الكريم

شمس الزناتي

أسأل الله العلي القدير أن يزيدك من العلم وأن يغفر لك ولوالديك

وأن يزيدك من النعيم ويهب لك الأجر الكبير

ولك تحيتي وتقديري

وجار تجربة الكود

#4

تم تجربة الكود

شغال 100 %

ربي يعطيك العافية

ويبارك لك في علمك

تحيتي لك

#5

السلام عليكم

انا جربت هذا الكود واشتغل 100%

ولكن مع ال Dail up بس

اي النت العادي عن طريق خط التليفون

ولكن مع ال ADSL

لم يطلع اي رسالة تفيد انه فعلا متصل

وشكرا

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#7

السلام عليكم

اخوي الكريم

MohamedAliSalim

كلامك مزبوط 100 %

جربته على ال ADSL ولم ينجز العملية

ويخبرني بأنه لا يوجد اتصال

نبهتني لخطوه مهمة

أتمنى أن يساعدنا الأخ شمس الزناتي

أما بالنسبة للكود الذي دلنا عليه الأخ

zain50

جربته ولكنه بطيء جدا ً

ولم يقوم باعطائي أي رساله

تحيتي للجميع

#8

بسم الله الرحمن الرحيم

إليك هذه الطريقة المجرّبة على الـModem والـADSL وهي تعمل بشكل ممتاز 100%

للتأكد بشكل يقيني أنك متصل بالإنترنت عليك التأكد أن هناك Bytes يحصل لها عملية Send وَ Receive

فللتأكد بشكل نهائي عليك تجربة الإتصال بأي موقع للتأكد أنك متصل بالإنترنت

قم بوضع هذه التعريفات في قسم التعريفات

Public Declare Function InternetCheckConnection Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, ByVal dwReserved As Long) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Const FLAG_ICC_FORCE_CONNECTION = &H1

وفي البرنامج :

If Not InternetCheckConnection("http://www.google.com", FLAG_ICC_FORCE_CONNECTION, 0&) = 0 Then

msgbox" You are connected"

else 

msgbox" You are not connected

end if

لا تنساني من الدعاء :lol:

والسلام,

#9

السلام عليكم

هذا تعقيب على كلام الأخ zain50

اخي زين قرأت بعض الردود على الموضوع الذي دليتنا عليه

وكان هذا رد أحد الزوار

-----------------------------

If you are on a slow connection, this code will take a while to complete... If netscape website is down, it will fail. If you have DNS server problems it will fail. That's a useless piece of code. Sorry pal.

-----------------------------

ويبين فيه مساوئ الكود .

تحيتي لك

السلام عليكم

اخوي ابن الشريف

بارك الله في جهودك

ولكن الكود لا يعمل على DSL

إلى الآن لم اجربه على المودم ولكن حتى لو أنه يعمل على المودم

فهو لا يعمل على DSL

أتمنى لك التوفيق في الدنيا والآخرة

وأن يزيدك الله من العلم والعفو والعافيه

بارك الله فيك اخوي

تحيتي للجميع

#10

السلام عليكم جميعا ً

وبعد محاولات عدة

توصلت إلى موضوع في نفس الموقع الذي دلنا عليه الأخ zain50 وفقه الله

الموضوع بعنوان

a Better way of testing if connected to the NET

وهو موجود على هذا الرابط

http://www.planetsourcecode.com/vb/scripts...33&lngWId=1

الكود يقوم باختبار الآتي :

IsNetConnectViaLAN

IsNetConnectViaModem

IsNetConnectViaProxy

IsNetConnectOnline

IsNetRASInstalled

GetNetConnectString

ولضمان وجود الكود وضعته لكم في المرفق

بارك الله فيكم جميعا ً

بالتعاون نصل

ولكم كل تحية وتقدير

a_Better_way_of_testing_if_connected_to_the_NET.zip

تم تعديل هذه المشاركة بواسطة anonym في 16 سبتمبر 2006 في 18:20

#11

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

اخي معرفة حالة الاتصال تعتمد على الحصول على رقم الـ IP

في المثال المرفق تجده يختبر الايبي فاذا وجده يساوي "127.0.0.1" فهذا يعني انك غير متصل

اما غير ذلك فبالطبع انت متصل بالانترنت

حمل المرفق وهو يعمل مع الدايل أب والدي اس ال

طبعا لأنه يعتمد على اختبار رقم الايبي

ارجو ان تكون وضحت الفكرة

بالتوفيق

الى اللقااء

Net_State.rar

JusT LeT YouR MinD WorK

#12

الاختبار الفعلي للاتصال بالانترنت..يجب أن يتم عبر اختبار استقبال بيانات فعليا من الانترنت ..

وبالتالي أري أن الكود الذي وضعه الأخ ابن الشريف بالمشاركة 8 هو الأصلح ..

#13

جزاكم الله جميعا مليووون خير لهذا الموضوع

الرائع وبالأخص صاحب الموضوع "anonym"

وكل من قدم المساعدة له ,, وبالمناسبة أرجو

الإهتمام بالموقع الأجنبى الذى وضعت رابطه

من قبل فهو مفيد جدا للمبرمجين

#14

ما شاء الله تبارك الله

والله التعاون شيء جميل

بالنسبه لكلام أخي

MR^King

وجهة نظره جدا ً جميله

ولكن هنالك تعليق بسيط

عند اتصالي بأي شبكه سوف يتغير الآي بي من 127,0,0,1

إلى آي بي آخر

حتى وان كانت الشبكه لا تحتوي على اتصال بالانترنت

فما رأيك بهذا الرأي

وجاري تجربة الكود المرفق

وفقك الله اخي

اخي الكريم Pharaonic_Guy

والله جربت الكود ولم يعمل على DSL

بارك الله فيك وفي وجهة نظرك

أخي zain50

الله يسمع منك

بارك الله فيك

أخي الكريم

وسنواصل العمل باذن الله

تحيتي للجميع

#15

أخي العزيز anonym

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

يمكن عمل اتصال مع موقع ويب علي بورت 80 ومراقبة مسار التنفيذ (هل سيتم الاتصال أم لا)

يمكن إضافة أوامر ببروتوكول HTTP ونراقب هل توجد بيانات مستقبلة..

يمكن استخدام ابسط شيء وهو دالة gethostbyname..وذلك لإتيان الـ IP لأي موقع مشهور ..وبالتالي إذا نجحت الدالة وتم إيجاد ال IP لموقع مثل ياهو مثلا .. فهذا يعني أن الجهاز متصل فعليا بالانترنت والعكس ..

سأحاول أن أوفيك بمشروع غدا بإذن الله ..

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 17 سبتمبر 2006 في 23:29

#16

السلام عليكم

اخي الكريم

Pharaonic_Guy

كلامك سليم 100 %

وأنا في انتظارك

تحيتي لك

#17

يا جماعة انا اسف جدا لتأخري في الردود بس و الله انا في الجيش و بتابع المواضيع في ايام الاجازات

و الحمد لله انكوا قدرتوا توصلوا للحل و دة خلق تعاون بينكم

اما عن رايي فانا اؤيد فكرة الاخ MR^King

و اسف تاني على التأخير

خطوات فيجوالية

--------------------------------------

التحزيم بواسطة Package & Deployment Wizard

أداة all date للتعامل مع الوقت

التعامل مع app.path دروس للمبتدئين

اصنع ocx من تصميمك لجميع احتيجاتك دروس للمبتدئين

شرح برنامج fack foder لحماية الفهارس

مواضيع اخرى

--------------------------------------

سجل بياناتك للاشتراك في رابطة المبرمجين المصريين, للاخوة المصريين او العرب المقيمين بمصر

عني = about me

--------------------------------------

مدونتي مصري للنهاية

--------------------------------------

على اسم مصر التاريخ يقدر يقول ما شاء ............... انا مصر عندي احب و اجمل الاشياء

#18

اسف علي التأخير ..النت كان فاصل عندي اليومين الماضيين

المشروع المرفق يمكن اعتماده في أي برنامج يعتمدعلي فحص وجود النت قبل إجراء أي عملية تتعلق بالنت ..

وكما قلت سابقا .. يمكن استخدام طرق عديدة وقد استخدمت منها طريقة معتمدة علي معرفة IP لأي موقع تحدده ..

عن طريق استخدام الدالة gethostbyname .. فإذا عادت بصفر .. فالسبب المنطقي هو أنه لا يوجد اتصال بالانترنت ..ما دمت قد استخدمت موقع شهير وغير قابل لأن ينتهي في المستقبل ..

Check_Connection.rar

تم تعديل هذه المشاركة بواسطة Pharaonic_Guy في 20 سبتمبر 2006 في 00:29

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…