В C #:
IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName());
for (int i = 0; i < IPHost.AddressList.Length; i++)
{
textBox1.AppendText("My IP address is: "
+ IPHost.AddressList[i].ToString() + "\r\n");
}
В этом коде переменная IPHostEntry
содержит все IP-адреса компьютера.
Теперь, насколько мне известно, Windows Vista возвращает несколько IP-адресов, некоторые в шестнадцатеричном формате, некоторые в десятичном формате и т. Д.
Проблема в том, что желаемая десятичная запись меняет свое местоположение в переменной IPHostEntry
: она изначально была в последнем месте и поэтому может быть доступна с кодом:
string ipText = IPHost.AddressList[IPHost.AddressList.Length - 1].ToString();
Однако, после изменения IP-адреса компьютера, он теперь появляется во 2-м последнем месте и поэтому должен быть доступен с помощью кода:
string ipText = IPHost.AddressList[IPHost.AddressList.Length - 2].ToString();
Существует ли какой-либо код, который извлекает IP-адреса в десятичном формате независимо от его местоположения в переменной IPHostEntry
??