2010-06-22 3 views
2

이 hostInfo.AddressList를 사용하여 컴퓨터의 IP 주소를 가져 왔습니다. ff80 :: c9c9 : b2af : aa0f : e2d2 % 12와 같은 문자 형식으로 반환합니다. 원하는 것은 IP 주소 형식 (숫자)으로 형식을 지정하는 것입니다.C#에서 IP 주소 포맷하기

어떤 도움이 필요합니까? C#을 사용

IP 주소 형식, 구체적으로는 IPv6 IP 주소 3.5

+0

지금 가지고있는 코드를 게시 할 수 있습니까? – Robaticus

답변

6

준 형식은 IPv6 주소를 나타내는 올바른 방법입니다. IPv6 주소를 나타내는 A.B.C.D 형식이 없습니다.

어떻게 된 건지 IPv4와 IPv6 모두의 주소 목록을 얻는 것입니다. 당신은 IPv4를 찾고 있습니다.

string GetFirstIPv4Address() 
{ 
    IPAddress[] addressList = Dns.GetHostAddresses(hostname); 

    foreach (IPAddress ip in addressList) 
    { 
     if (ip.AddressFamily.ToString() == "InterNetwork") 
     { 
      //This is an IPv4 address 
      return ip.ToString(); 
     } 
    } 
    return "127.0.0.1"; 
} 
4

그게 .NET. IPv4 주소를 원하는 것처럼 들리지만 IPv6 주소는 네트워크 구성 방법을 알지 못하면 IPv4 주소로 다운 컨버전 할 수 없습니다.

호스트에 v6 주소가있는 경우이 주소를 사용하는 것이 좋습니다. 애플리케이션 수준에서 주소를 다운 컨버전하려고해서는 안됩니다.

+0

기본적으로이 경우 IPv4 형식을 얻는 방법은 없습니다. – sarsnake

+0

아니요, IPv6 주소가 32 비트가 아니기 때문에 점으로 구분 된 IPv6 주소가 없습니다. –