PDA

View Full Version : تشخیص نوع interface network



ایمان اختیاری
چهارشنبه 02 تیر 1389, 12:25 عصر
توی یه شبکه برای اینکه سیستم ها به یک سرور وصل بشن از وی پی ان استفاده شده ..
حالا چطور می شه phisical address کارت شبکه رو فهمید .. یا در واقع این طور بگم فقط phisical address کارت شبکه رو توی خروجی داشت .. ؟
کد زیر رو نوشتم چون دیدم مک کارت شبکه ها همه با 00 شروع می شه ولی دیدم بعضی وقتها وقتی وی پی ان هم وصل می شه آدرس فیزیکیش با 00 شروع می شه ..
string mac = "";
string temp = "";
ManagementObjectSearcher searcher;
string qry = "select * FROM Win32_NetworkAdapter";
searcher = new ManagementObjectSearcher(qry);
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (wmi_HD["MacAddress"] != null)
//MessageBox.Show(wmi_HD["MacAddress"].ToString());
temp = wmi_HD["MacAddress"].ToString();
if (temp.Substring(0, 2) == "00")
mac = temp;

}

return mac;

Saeed.Masoumi
پنج شنبه 03 تیر 1389, 07:31 صبح
سلام


var Query = from NetworkInterface in System.Net.NetworkInformation.NetworkInterface.Get AllNetworkInterfaces() select NetworkInterface.GetPhysicalAddress();
foreach (var PhysicalAddress in Query)
{
MessageBox.Show(PhysicalAddress.ToString());
}





پ . ن : اون دستور


GetAllNetworkInterfaces()
است توی کد بالا شکسته شده.

ایمان اختیاری
پنج شنبه 03 تیر 1389, 08:46 صبح
مرسی از پاسختون
من از روش زیر استفاده کردم فکر کنم تا یه حدی جواب بده :
string mac = "";
string temp = "";
string temp2 = "";
ManagementObjectSearcher searcher;
string qry = "select * FROM Win32_NetworkAdapter";
searcher = new ManagementObjectSearcher(qry);
foreach (ManagementObject wmi_HD in searcher.Get())
{
if (wmi_HD["MacAddress"] != null)
{
//MessageBox.Show(wmi_HD["MacAddress"].ToString());
temp = wmi_HD["MacAddress"].ToString();
temp2 = wmi_HD["Description"].ToString();
}
//if (temp.Substring(0, 2) == "00")
// mac = temp;
if (temp2.IndexOf("Ethernet") != -1)
mac = temp;

}

return mac;

ایمان اختیاری
پنج شنبه 03 تیر 1389, 08:49 صبح
یه سوال ..
وقتی داریم مک رو از کارت شبکه می گیریم توی سی شارپ واسه اینترفیس ها اولویتی وجود نداره که بگه مثلا این اینترفیس اولویتش 1 اون یکی 2 و ... ؟

Saeed.Masoumi
پنج شنبه 03 تیر 1389, 09:09 صبح
سلام
روشی که من گفتم بهتر است چون از امکانات اولیه خود سی شارپ استفاده شده است.
این یکی همون است کامل ترش. ببینید همین را می خواهید؟

var Query = from NetworkInterface in System.Net.NetworkInformation.NetworkInterface.Get AllNetworkInterfaces() select NetworkInterface;
foreach (var PhysicalAddress in Query)
{
MessageBox.Show(string.Format("Description:{0}\nId:{1}\nMac:{2}\nInterfaceType:{3 }", PhysicalAddress.Description, PhysicalAddress.Id, PhysicalAddress.GetPhysicalAddress(), PhysicalAddress.NetworkInterfaceType));
}

ایمان اختیاری
پنج شنبه 03 تیر 1389, 10:00 صبح
عذر می خوام
به جز این رفرنس ها از چیز دیگه ای استفاده شده :
using System.Net;
using System.Management;
using System.Net.NetworkInformation;

Saeed.Masoumi
پنج شنبه 03 تیر 1389, 15:28 عصر
سلام این رفرنس ها ست:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;