روی یک سیستم که هم کارت شبکه ی فیزیکی نصبه هم کارت شبکه ی مجازی چطور می شه نوع اونا رو فهمید ؟
روی یک سیستم که هم کارت شبکه ی فیزیکی نصبه هم کارت شبکه ی مجازی چطور می شه نوع اونا رو فهمید ؟
اگر پشت خود سیستم هستی می تونی وقتی ipconfig /all بزنی مشخصات کاملی بهت می ده که جلوی اون کارت شبکه مجازی یا loop back می نویسه یا لاجیکال
و در ضمن می تونی از مک آدرس هم استفاده کنی با دستور getmac آدرس مک رو سرچ کن تو اینترنت ببین وجود دارد یا نه
مرسی از پاسختون
من از این قطعه کد استفاده می کنم ولی وقتی توی سیستمی دوجور کارت شبکه نصب باشه ( یکی واقعی و یکی مجازی ) درست کار نمی کنه
می تونید کمک کنید :
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;
شرمنده نمی دونم چه طوری می تونم کمکت کنم برو تو قسمت برنامه نویسی اونجا مطرح کن سوالتو
فکر کنم الان اونجا مطرح کردم
سلام
ببینید دوست عزیزمن در جای دیگه هم به همین سوال شما جواب دادم(اینجا).نمی دونم چرا شما دوست دارید از اون روش استفاده کنید درحالی که خود سی شارپ این امکان را برای شما محیا ساخته است.
ولی یک بار دیگه اینجا هم می گم (این کار هایی که می گم کامل انجام بدین ببینید به چیزی که می خواین می رسین یا نه):
این هدر ها رو اضافه کنید:
using System;
using System.Linq;
using System.Windows.Forms;
سپس کد زیر را در متد مورد نظرتان بنویسید:
var Query = from NetworkInterface in System.Net.NetworkInformation.NetworkInterface.Get AllNetworkInterfaces() select NetworkInterface;
foreach (var NetworkInterface in Query)
{
MessageBox.Show("Physical Address: " + NetworkInterface.GetPhysicalAddress() +
"\nID:"+NetworkInterface.Id+"\nName: "+NetworkInterface.Name+ "\nInterface Type: " +
NetworkInterface.NetworkInterfaceType.ToString() + "\nDescription: " +
NetworkInterface.Description,"Properties");
}
حالا ببین اون چیزی که می خوای بهت می ده یا نه.
موفق باشید
جناب معصومی از توجهتون متشکرم .. اتفاقا توی اون پست هم می خواستم این مشکل رو بیان کنم فکر کنم یادم رفت این بود که دوباره تاپیک جدید زدم ..
ببینید .. وقتی کد شما رو اجرا کردم نتایج زیر رو داشتم که پیوست شده .. روی سیستم من هم vmware نصبه هم virtual box .. این برنامه ها هم یک کارت شبکه ی مجازی به سیستم اضافه می کنن .. با کد شما نوع اینترفیس این کارت شبکه ها به عنوان Ethernet شناخته شده .. فقط یه مورده که کارت شبکه ی حقیقیه ..
حالا چطور می شه بین این موارد تفکیک قائل شد؟ .. چون برنامه نهایی روی سیستم هایی نصب می شه که نمی دونم چه نوع کارت شبکه هایی ممکنه روشون باشه ..
سلام
در حال حاضر من اون نرم افزار ها رو ندارم.
بروید داخل Regedit و آدرس زیر رو دنبال کنید ببینید ID مربوط به کارت شبکه های مجازی ,در داخل InterfaceList ثبت شده است یا خیر اگر ثبت نشده باشد که مشکل حل می شود.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EAPOL\Parame ters\General
سوال:آیا همیشه درقسمت توضیحات مربوط به کارتهای مجازی عبارت Virtual دیده می شود یا فقط در این دو نرم افزار اینگونه است؟
جناب معصومی .. متشکرم از راهنماییتون .. و مخصوصا اون سوال آخر .. من روی همون مورد مانور دادم و کد زیر رو نوشتم . تا اونجایی که برای کار من نیاز بود جواب داد .. راستی اون آدرس رجیستر هم نیگا کردم .. توی سون چنین چیزی نبود یه ادرس دیگه بود که اطلاعاتش واقعا زیاد و نا مفهموم - البته برای من - بود .. بازم ازتون متشکرم
string t2, t3;
var Query = from NetworkInterface in System.Net.NetworkInformation.NetworkInterface.Get AllNetworkInterfaces() select NetworkInterface;
foreach (var NetworkInterface in Query)
{
t2 = NetworkInterface.NetworkInterfaceType.ToString();
t3 = NetworkInterface.Description;
if (t2.ToString().ToLower() == "ethernet" && (t3.IndexOf("Virtual") == -1))
{
MessageBox.Show("Physical Address: " + NetworkInterface.GetPhysicalAddress() +
"\nID:"+NetworkInterface.Id+"\nName: "+NetworkInterface.Name+ "\nInterface Type: " +
NetworkInterface.NetworkInterfaceType.ToString() + "\nDescription: " +
NetworkInterface.Description,"Properties");
}
}