Giriş
Şu satırı dahil ederiz.
GetAllNetworkInterfaces metodu
Şöyle yaparız.
Şu satırı dahil ederiz.
using System.Net.NetworkInformation.NetworkInterface;
Java'daki NetworkInterface Sınıfı ile aynı işlevi görür.GetAllNetworkInterfaces metodu
Şöyle yaparız.
NetworkInterface netif =NetworkInterface.GetAllNetworkInterfaces()
GetIPProperties metodu
IP özelliklerini döner. Şöyle yaparız.
IPInterfaceProperties properties = nic.GetIPProperties();
Eğer arayüzünü ismini biliyorsak şöyle yaparız.NetworkInterface netif = NetworkInterface.GetAllNetworkInterfaces()
.Single(networkInterface => networkInterface.Name.ToLower() =="loopback");
IPInterfaceProperties propss = netif.GetIPProperties();
UnicastIPAddressInformationCollection unicastIpAddress = props.UnicastAddresses;
Console.Write(netif.Name + ": ");
Console.WriteLine(unicastIpAddress[1].Address);
İstediğimiz arayüzlerin IP adreslerini şöyle alırız.Önce bir arayüz isimlerini bir diziye doldururuz.var networkInterfaceNames = new HashSet<string>() {
"Local Area Connection",
"Loopback Pseudo-Interface 1"
};
Daha sonra bu isimlere sahip arayüzleri seçeriz.var localIpAddresses = NetworkInterface
.GetAllNetworkInterfaces()
.Where(ni => networkInterfaceNames.Contains(ni.Name))
.Select(
ni => ni
.GetIPProperties()
.UnicastAddresses
.First(ua => ua.Address.AddressFamily == AddressFamily.InterNetwork)
);
GetIsNetworkAvailable metodu - Tüm Arayüzler İçin
Şöyle yaparız.
Şöyle yaparız.
if (NetworkInterface.GetIsNetworkAvailable()) {...}
GetIsNetworkAvailable metodu - Tek Bir Arayüz İçin
Arayüzün "up" veya "down" olduğunu bildirir.
Id Alanı
Her arayüzün bir numarası vardır.
Name Alanı
Her arayüzün bir ismi vardır. Şöyle yaparız.
Console.WriteLine("Network interface {0} is {1}",
adapter.Id,
(adapter.GetIsNetworkAvailable()?"up":"down")
);
GetPyhsicalAddress metodu
Şöyle yaparız.
macAddr =
(
from nic in NetworkInterface.GetAllNetworkInterfaces()
where nic.OperationalStatus == OperationalStatus.Up
select nic.GetPhysicalAddress().ToString()
).FirstOrDefault();
Eğer Linq kullanmak istemezsek şöyle yaparız.
foreach(var nic in NetworkInterface.GetAllNetworkInterfaces())
{
if(nic.OperationalStatus == OperationalStatus.Up)
{
return nic.GetPhysicalAddress();
}
}
return string.Empty();
Her arayüzün bir numarası vardır.
Name Alanı
Her arayüzün bir ismi vardır. Şöyle yaparız.
NetworkInterface netif =NetworkInterface.GetAllNetworkInterfaces()
.Single(networkInterface => networkInterface.Name.ToLower() =="loopback");
Şöyle yaparız.
if (netif.NetworkInterfaceType == NetworkInterfaceType.Wireless80211
|| netif.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
...
}
Şöyle yaparız.NetworkInterface ni = ...;
if (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 &&
ni.OperationalStatus == OperationalStatus.Up) {
...
}
Hiç yorum yok:
Yorum Gönder