17-10-12, 06:47 PM
كاتب الموضوع : Boutemine Oualid
بسم الله الرحمن الرحيمالسلام عليكم رحمة الله و بركاته
من خلال هذه الشفرة، يمكننا معرفة العنوان الفيزيائي (MAC Address) لكروت الشبكة المثبة على الجهاز
المثال يستعمل خدمات ال WMI لمعرفة العناوين
لذلك علينا أولا باضافة مرجع إلى المجمع System.Management
الكود
كود :
using System;
using System.Management;
using System.Windows.Forms;
namespace AdressesMAC
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void FillNetworkAdapters()
{
ManagementClass mc;
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject o in moc)
{
if ((bool)o.GetPropertyValue("IPEnabled") == true)
{
string strAdapter;
strAdapter = o.GetPropertyValue("Caption").ToString();
cbxNetwokAdapters.Items.Add(strAdapter);
}
}
}
private string GetMACAddress(string Adapter)
{
ManagementClass mc;
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject o in moc)
{
if ((bool)o.GetPropertyValue("IPEnabled") == true)
{
string strAdapter;
strAdapter = o.GetPropertyValue("Caption").ToString();
if (strAdapter == Adapter)
return o.GetPropertyValue("MacAddress").ToString();
}
}
return string.Empty;
}
private void cbxNetwokAdapters_SelectedIndexChanged(object sender, EventArgs e)
{
lblMacAddress.Text = GetMACAddress(cbxNetwokAdapters.SelectedItem.ToString());
}
private void frmMain_Load(object sender, EventArgs e)
{
FillNetworkAdapters();
}
}
}
كود :
Imports System.IO
Imports System
Imports System.Management
Imports System.Windows.Forms
Public Class Form1
Private Sub FillNetworkAdapters()
Dim mc As ManagementClass
mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim moc As ManagementObjectCollection = mc.GetInstances()
Dim o As ManagementObject
For Each o In moc
If CType(o.GetPropertyValue("IPEnabled") = True, Boolean) Then
Dim strAdapter As String
strAdapter = o.GetPropertyValue("Caption").ToString()
cbxNetwokAdapters.Items.Add(strAdapter)
End If
Next
End Sub
Private Function GetMACAddress(ByVal Adapter As String) As String
Dim mc As ManagementClass
mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim moc As ManagementObjectCollection = mc.GetInstances()
Dim o As ManagementObject
For Each o In moc
If CType(o.GetPropertyValue("IPEnabled") = True, Boolean) Then
Dim strAdapter As String
strAdapter = o.GetPropertyValue("Caption").ToString()
If strAdapter = Adapter Then
Return o.GetPropertyValue("MacAddress").ToString()
End If
End If
Next
Return String.Empty
End Function
Private Sub cbxNetwokAdapters_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cbxNetwokAdapters.SelectedIndexChanged
lblMacAddress.Text = GetMACAddress(cbxNetwokAdapters.SelectedItem.ToString())
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
FillNetworkAdapters()
End Sub
End Class