Memik Yanık - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS RSS | İletişim

Ağ Kartının Özelliklerini Öğrenmek - C#


Kullanılan bilgisayarın ağ özellikleri hakkında bilgi edinilmek istendiği zaman genellikle işletim sisteminden yararlanılır. Örneğin Windows’a ait Ağ Bağlantıları Özellikleri diyalog kutusu ekrana getirilerek IP adresi öğrenilebilir. C# projesi dahilinde bilgisayarın ağ özellikleri hakkında bilgi edinilmek istendiğinde .NET Framework ile gelen System.Net ve System.Net.NetworkInformation namespace’lerindeki sınıflardan yararlanabilirsiniz.

Bu namespace’lerden yararlanarak kullandığım bilgisayarın ağ özellikleri hakkında bilgi edinmek için yeni bir proje hazırladım ve bu projenin ilk formunun ait kod dosyasınınüst kısmında using deyimiyşle System.Net ve Syetem.Net. NetworkInformation’deki sınıflardan yararlanmak istediğimi işaret ettim.

using System.Net;
using System.Net.NetworkInformation;

System.Net.NetworkInformation’de çok sayıda Interface bulunmaktadır. Sistemin ağ ortamı hakkında bilgi edilirken bu namespace’teki NetworkInterface arayüzünden yararlanılmaktadır. Bu nedenle ilk aşağıdaki gibi kod yazarak NetworkInterface için değişken tanımladım.

System.Net.NetworkInformation.NetworkInterface[] Arayüz;
Arayüz = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();

Interface nesnesine ağ ortamıyla ilgili bilgiler GetAllNetworkInterfaces() metodu ile aktarılmaktadır. Söz konusu namespace’deki sınıflardan yararlanmak istediğimi daha önce belirttiğim için bu 2 satırı aşağıdaki gibi kısaltmak mümkündür.

NetworkInterface[] Arayüz;
Arayüz = NetworkInterface.GetAllNetworkInterfaces();

Bu şekilde NetworkInterface nesnesi hazırladıktan sonra GetEnumerator() metodunu uygulayıp bilgileri bir enum tipine alıp ağ ortamı ile ilgili bilgilere kolayca erişebilirsiniz. Ancak konunun kolay anlaşılmasını amaçladığım için GetEnumerator() metodundan yararlanıp enum tipi hazırlamayacağım.

NetworkInterface nesnesini hazırladıktan sonra NetworkInterfaceType tipinde bir değişken tanımladım. Ardından GetAllNetworkInterface() metodu ile NetworkInterface nesnesine aktardığım bilgilerin ilk satırının NetworkInterfaceType ile ilgili kısmını bu değişkene aktardım. NetworkInterfaceType nesnesini hazırladıktan sonra forma bir TextBox yerleştirip yukarıda verdiğim koda ekleme yaptım.

private void Form1_Click(object sender, EventArgs e)
{
  NetworkInterface[] Arayüz;
  Arayüz = NetworkInterface.GetAllNetworkInterfaces();
  NetworkInterfaceType Network_tipi;
  Network_tipi = Arayüz[0].NetworkInterfaceType;
  textBox1.Text = Network_tipi.ToString();
}

Bu kod işletildiğinde kullandığınız bilgisayarda Windows’un Ağ Bağlantıları penceresinde listelenen ilk seçenekle ilgili bilgilerden NetworkInterface ilk textBox’a yazılır. Bu kodda “Arayüz” adını verdiğim NetworkInterface nesnesinin kaç satıra sahip olduğunu öğrenmek istiyorsanız Length özelliğine bakabilirsiniz. Length özelliğinin içeriği Windows’un Ağ Bağlantıları penceresinde listelenen nesnelerin sayısına bağlıdır. Söz konusu ağ nesnesinin diğer özellikleri hakkında bilgi edinmek için forma birkaç TextBox daha yerleştirip yukarıda verdiğim koda eklemeler yaptım.

private void Form1_Click(object sender, EventArgs e)
{
  NetworkInterface[] Arayüz;
  Arayüz = NetworkInterface.GetAllNetworkInterfaces();
  textBox1.Text = Arayüz[0].Name;
  textBox2.Text = Arayüz[0].Description; 
  NetworkInterfaceType Network_tipi;
  Network_tipi = Arayüz[0].NetworkInterfaceType;
  textBox3.Text = Network_tipi.ToString();
  PhysicalAddress Mac_Adres;
  Mac_Adres = Arayüz[0].GetPhysicalAddress();textBox4.Text = Mac_Adres.ToString();
  double Hiz;
  Hiz = Arayüz[0].Speed/1000000;
  textBox5.Text = Hiz.ToString() + " Mbps";
}

Forumlardaki Sorular 12.04.2009 20:29:42

YORUM YOK


YorumlarYorum Yaz
Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS | İletişim
Memik Yanık 2004-2009 © Tüm Hakları Saklıdır.
Hazırlayan www.semgoksu.com