2014-04-17 6 views
1
public static string GetLocalIpAddress() 
    { 
     string hostName = Dns.GetHostName(); 
     IPHostEntry ip = Dns.GetHostEntry(hostName); 
     string IpAddress = Convert.ToString(ip.AddressList[2]); 
     return IpAddress.ToString(); 
    } 

인덱스 아웃 바운드 예외 이 문제는 무엇이 문제입니까? 미리 감사드립니다.로컬 호스트 받기 IP 주소

+1

ip.AddressList [2] 우선은이 목록에 얼마나 많은 요소를 확인해야합니다. – Jay

+1

배열 인덱스가 2> ip.AddressList.Length이기 때문에 오류가 발생합니다. –

답변

0

이전에 답변 해 주셨습니다. 주소 목록에서 주소를 확인해야합니다. 항상 여기에 2

되지 않습니다 렸기 때문에 당신에 유래에 다른 대답을 : Getting valid IP from IPHostEntry

3
foreach (var addr in Dns.GetHostEntry(string.Empty).AddressList) 
{ 
if (addr.AddressFamily == AddressFamily.InterNetwork) 
Console.WriteLine("IPv4 Address: {0}", addr) 
} 
7

이 방법을 시도, 나를 위해 작동합니다.

public static string GetIPAddress() 
    { 
     IPHostEntry host; 
     string localIP = "?"; 
     host = Dns.GetHostEntry(Dns.GetHostName()); 
     foreach (IPAddress ip in host.AddressList) 
     { 
      if (ip.AddressFamily == AddressFamily.InterNetwork) 
      { 
       localIP = ip.ToString(); 
      } 
     } 
     return localIP; 
    } 

감사합니다,