شاب-حباب

التمييز بين الاجهزة عن طريق ال ip ام ال mac

4 ردود في هذا الموضوع

السلام عليكم اخواني ....

طبعا هاذي ثاني مرة اكتب المشاركة مااعرف يمكن اذا غلطت بحاجة او المشاركة اللغيت في حالة الغيت ارجوا اعلامي

الاستفسار ::

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

يعني في البداية مجرد اطلع حساب جهاز رقم سبعة مثلاُ

الاسؤال كيف اعرف الجهاز رقم سبعة وكيف اميزة اذا كان ال ip DHCP

يعني متغير

هل امييز بين الاحهزة عن طريق الل mac ؟

هل هذا هو الاسلوب الصحيح في التمييز بين الاجهزة في مثل هكدا برامج ؟

وشكرا جزيلا

اخوكم محمد

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم اخي الكريم

طبعا لا انصحك باستخدام الـIP لتميز الأجهزة , يوجد لديك حلين

1- استخدام اسم الجهاز الـHost Name ويمكنك جلبه بسهولة

Environment.MachineName

إذ يدل الأسم دائما على الـIP وفي حالة تغير الـIP يمكنك معرفته بسهولة ( أنظر سلسلة دروس تعلم برمجة الشبكات DNS Programming )

2- استخدام الـMAC طبعا هو اقوى بكثير من الطريقة الأولى , اما طريقة جلبه فيمكنك استخدام الأمر nbtstat

ويمكننا الاستفادة من هذا الـ Command من داخل الدوت نيت باستخدام الـProcessStartInfo Class والـProcess Class الموجود ضمن الـSystem.Diagnostics Namespace ، حيث نمرر الـ Command والـ Arguments الذي نريد تنفيذه إلى الـProcessStartInfo Instance Object ثم ننفذ الأمر بتمرير الـinstance object السابق إلى الـ Process.Start Method ويتم ذلك كما يلي:

C#:
public string GetMac(string IP)
{
string str1=String.Empty;
try
{
string str2=String.Empty;
ProcessStartInfo info1 = new ProcessStartInfo();
Process process1 = new Process();
info1.FileName = "nbtstat";
info1.RedirectStandardInput = false;
info1.RedirectStandardOutput = true;
info1.Arguments = "-A " + IP;
info1.UseShellExecute = false;
process1 = Process.Start(info1);
int num1 = -1;
while (num1 <= -1)
{
num1 = str2.Trim().ToLower().IndexOf("mac address", 0);
if (num1 > -1) { break; }
str2 = process1.StandardOutput.ReadLine();
}
process1.WaitForExit();
str1 = str2.Trim();
}
catch (Exception exception2)
{ throw exception2; }
return str1;
}
}

VB.NET:
Public Function GetMac(ByVal IP As String) As String
Dim str1 As String = String.Empty
Try
Dim str2 As String = String.Empty
Dim info1 As ProcessStartInfo = New ProcessStartInfo
Dim process1 As Process = New Process
info1.FileName = "nbtstat"
info1.RedirectStandardInput = False
info1.RedirectStandardOutput = True
info1.Arguments = "-A " & IP
info1.UseShellExecute = False
process1 = Process.Start(info1)
Dim num1 As Integer = -1
Do While num1 <= -1
num1 = str2.Trim().ToLower().IndexOf("mac address", 0)
If num1 > -1 Then
Exit Do
End If
str2 = process1.StandardOutput.ReadLine()
Loop
process1.WaitForExit()
str1 = str2.Trim()
Catch exception2 As Exception
Throw exception2
End Try
Return str1
End Function

ولتنفيذ الـ Method السابقة نمرر الـ IP Address (الخاص بالجهاز الذي نريد أن نجلب الـMAC Address الخاص به) إلى الـ Method السابقة حيث قمنا بفصل الـ MAC Address عن بقية المعلومات التي يخرجها لنا باستخدام الـ Trim Method ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا اخوي فادي دائما ماترد احد

جزاك الله خير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على الإفادة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .