I need to know how to get all network interfaces with their IPv4 address. Or just wireless and Ethernet.
To get all network interfaces details I use this:
foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) {
if(ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet) {
Console.WriteLine(ni.Name);
}
}
And to get the all hosted IPv4 addresses of the computer:
IPAddress [] IPS = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ip in IPS) {
if (ip.AddressFamily == AddressFamily.InterNetwork) {
Console.WriteLine("IP address: " + ip);
}
}
But how to get the network interface and its right ipv4 address?
This should get you what you want. ip.Address is an IPAddress, that you want.
With some improvement, this code adds any interface to a combination:
And when selecting one of them, this code returns the IP address of the interface: