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

هل يوجد كود لعمل ترقيم متسلسل للشبكة

بدأه الوليد123 في 7 مارس 2009 · 11 رد · 1,250 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

في موضوع سابق تم البحث عن كود لتغيير

ip الشبكة الداخلية

/index.php?showtopic=186953

وقد تمت الاجابة على الموضوع بفضل الاخ

mrx_ta7ady

فشكرا جزيلا له

الان يوجد سؤال اخر وهو

هل بالامكان عمل ترقيم متسلسل للشبكة بشكل مشابة للراوتر

ولكن في اطار ارقام تسلسلية خاصة مثلا

192.168.0.1

فاذا كان مشغول يعطي الرقم الذي يليه

192.168.0.2

وهكذا

لقد وجدت المثال المرفق وهو يقوم بفحص ارقام الاي بي ويعطي علامة للرقم المستعمل والرقم الغير مستعمل

فهل بالامكان تطوير هذا الكود مثلا بحيث انه يعطيني اول رقم غير مستعمل ويتوقف عن البحث بعد ذلك

ارجوا المساعدة ولكم مني اجمل تحية

ping.zip

#2

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

الفضل والشكر لله :) .. مرفق مثال مدمج به الطريقتين ومضاف عليهم اشياء طفيفة

ChangeIP.rar

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#3

شكرا جزيلا لسرعة ردودك الجميلة

وهذا ليس غريب عليك فانت ملك التحدي

mrx_ta7ady

وبالنسبة للكود فقد قمت بتجربته وهو يعطي رقم اي بي الجهاز اثناء تشغيلة ولكنه لايقوم بالتغيير بعد الضغط على زر التغيير

ارجوا ابلاغي عن مكان الخطأ وشكرا جزيلا لك

#4

المثال معد لتغيير الـ IP في حالة وجود IP غير محجوز ويسبق الـ IP الحالي لجهازك

اي مثلا لو افترضنا الآتي

Gateway = 192.168.1.1

وهناك ثلاثة اجهزة اخرى في الشبكة

PC1 = 192.168.1.2

PC2 = 192.168.1.3

PC3 = 192.168.1.5

وجهازك حاليا 192.168.1.4 .. اذا لن يتم التغيير

اما لو اي رقم آخر مثلا 192.168.1.10 .. فسيتم التغيير إلى 192.168.1.4

ولكن على كل حال .. بإمكانك البحث عن الجزئية الشبيهة بالكود ادناه



For i = MaxIPAddress To MaxIPAddress
Call Ping(NewIPAddress & CStr(i), ECHO)

If ECHO.status = (11000 + 10) Then
Call ChangeIPAddress(NewIPAddress & CStr(i), SubnetMask, CurGateway)
Exit For
End If
Next i
	NewIPAddress = Mid(CurIPAddress, 1, InStrRev(CurIPAddress, "."))

وإستبدالها بالكود أدناه


NewIPAddress = Mid(CurIPAddress, 1, InStrRev(CurIPAddress, ".")) & CStr(i)
Call Ping(NewIPAddress, ECHO)

If ECHO.status <> 0 Then
Exit For
End If
Next i

Call ChangeIPAddress(NewIPAddress, SubnetMask, CurGateway)
	For i = MaxIPAddress To MaxIPAddress

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#5

اخي mrx_ta7ady

اولا اكرر شكري الجزيل لشخصكم الكريم وسرعة تجاوبكم في كلا الموضوعين

ثانيا انا محرج كثير لاني احس باني اثقلت عليك

لقد حاولت تجربة الكود ولكن لم انجح وبالتاكيد لقلة خبرتي

هل بالامكان دمج الكودين في المشاركة السابقة مع الكود الجديد ليتم الوصول الى المطلوب

بالنسبة للكود السابق فانني ارفقه في هذة المشاركة

المطلوب هو في حال اختيار ترقيم تلقائي فلا يوجد مشكلة

ولكن اذا تم اختيار ترقيم يدوي بان يقوم بالبحث عن اول رقم غير مستخدم ضمن مجموعة الارقام

(هنا التغيير).192.168.0

وهكذا

واشكرك على سعة صدرك

Change_IP_address.rar

تم تعديل هذه المشاركة بواسطة الوليد123 في 8 مارس 2009 في 15:47

#6

مرفق مثالين لتصطفي منهم أنسبهم .. او زدني توضيحا :)

Al_Waleed_1.rar

Al_Waleed_2.rar

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#7

المثالين جميلين ولكنهما بنفس المضمون تقريبا

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

ولكن المشكلة بانه يضع لك ترقيم عادي اجباري وهو نفس الرقم المستخدم اثناء الترقيم التلقائي

المطلوب هو اثناء الضغط على زر الترقيم العادي بان يضع الارقام التالية

192.168.0.1

واذا كان هذا الرقم مشغول في جهاز اخر يعطيني الرقم الذي يليه مثلا

192.168.0.2

واسف على ازعاجك

#8

على فكرة انا من الاشخاص اللي احاول كثير في الوصول الى حل قبل طرح الموضوع

كما اني احاول ايضا في تطوير الكود بما يتناسب مع طلبي - ايضا قبل اي مشاركة

لكني هنا حاولت كثيرا ولم اتوصل الى الحل

فهل ممكن بعد تحويل الشبكة (من الترقيم التلقائي الى الترقيم اليدوي) بان يتم تغيير ارقام الاي بي الى الارقام التالية

192.168.0.1

واذا هذا الرقم مشغول يستعمل الذي يليه 192.168.0.2 وهكذا

اتوقع في ملف ping المرفق في اول المشاركة لو استطيع بدل من وضع رسالة بان هذا الرقم مستخدم يتم التعرف على الرقم المستخدم ثم اعطاء الرقم التالي (يمكن)

اسف على الاطاله وشكرا

#9

أخي الوليد .. ظني بالامثلة السابقة انها تؤدي نفس الطلب

فهل من توضيح اكثر لما يحدث حاليا والخطا في اي من الامثلة السابقة ؟

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#10

اخي تحدي

المطلوب الذي لم اصل اليه حتى الان هو في زر الترقيم العادي

حيث ان الكود الان يستطيع تحويلك من الترقيم التلقائي الى العادي ولكن (بنفس ارقام الاي بي التي كانت اثناء الترقيم التلقائي) دون تغيير

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

المطلوب هو اثناء الضغط على زر الترقيم العادي بان يعطي رقم اي بي في هذة الحدود من (192.168.0.1) الى (192.168.0.255) رقم فاضي لم يستخدم في اي جهاز مرتبط معي في شبكة داخلية

اذا كان 192.168.0.1 لم يستخدم يعطي جهازي هذا الرقم

واذا كان مستخدم في جهاز اخر يعطيني 192.168.0.2

واذا الرقمين مستخدمين في اجهزة اخرى في شبكة داخلية يعطيني 192.168.0.3 وهكذا

وشكرا

#11

نعم .. بالفعل كان هناك خطا ومن عندي .. ومتاسف جدا عليه

وهو تحديدا في سطر التكرار وبدأ قاعدة For .. اذهب للسطر الشبيه بالذي ادناه

For i = MaxIPAddress To MaxIPAddress

وغيره إلى

For i = MinIPAddress To MaxIPAddress

وبهذا يكون التحقق من اول 1 حتى الـ IP الحالي

لو افترضنا انك 5 وهناك 4 و 3 و 2 و 1 مستخدمين من قبل .. فسيتم تغيره الى 5

اما لو مثلا 4 و 3 و 1 فقط هم المستخدمين .. فسيتم تغير الـ IP إلى 2

والخطا كان يؤدي الى عدم التحقق بدئا من 1 .. ويتحقق بدئا من 5 وحتى 5

فبالتالي كان التغيير غير المطلوب لانه يغيره كالحالي فقط :(

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

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#12

لقد ازعجتك بهذا الموضوع فسامحني

نعم يا مبدع يا ملك التحدي تمت العملية بنجاح باهر

شكرا لك واسال الله ان يحفظك من كل مكروه

اقدر اقولها وبكل ثقة (تمت الاجابة بفضل الله ثم بفضل ملك التحدي)

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