Я позволил пользователю решить, к какому сетевому интерфейсу он / она хочет подключиться, и поместил его в AppSetting.Затем я создаю модуль, который читает файл конфигурации, чтобы решить, к какому сетевому интерфейсу подключиться, а также для проверки и получения IP-адреса. Я использую этот код
в vb.net:
Dim networkinterfaces() As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces()
Dim found As Boolean = False
For Each ni As NetworkInterface In networkinterfaces
If NetworkInterfaceName.Equals(ni.Name) Then
If ni.GetPhysicalAddress().ToString().Length > 0 Then
IPAddressFromNetworkCard = ni.GetIPProperties.UnicastAddresses(0).Address
found = True
Exit For
End If
End If
Next
c # (немного больше трассировки, но он делает почти то же самое):
Console.WriteLine("Test get ip of interfacecard");
Console.WriteLine("Give name of interfacecard:");
string s = Console.ReadLine();
List<NetworkInterface> nics = NetworkInterface.GetAllNetworkInterfaces().ToList<NetworkInterface>();
Console.WriteLine(nics.Count + " networkinterfaces found");
bool found = false;
foreach (NetworkInterface ni in nics)
{
Console.WriteLine("Available nic: " + ni.Name);
}
Console.WriteLine("");
Console.WriteLine(String.Format("searching for: \"{0}\"", s));
foreach (NetworkInterface ni in nics)
{
if (ni.Name.Equals(s))
{
if (ni.GetPhysicalAddress().ToString().Length > 0)
{
Console.WriteLine("Network interface found, ipAddress: " + ni.GetIPProperties().UnicastAddresses[0].Address.ToString());
found = true;
break;
}
}
}
if (!found)
Console.WriteLine(String.Format("\"{0}\" not found", s));
Console.ReadKey();