2012-01-24 3 views
0

라이브 데이터를 수집하기 위해 내 응용 프로그램이 상호 작용하는 서버 IP 주소 목록이 있습니다. 수집 된 데이터는 다른 시스템의 슬롯으로 전송됩니다. 이 슬롯은 8 자 길이의 문자열로 식별됩니다. 그리고이 슬롯을 프로그래밍 방식으로 만들고 싶습니다. 나는 8 문자 문자열 서버의 IP 주소를 매핑하는 방법을 만들고 싶습니다. 예. 주어진 192.80.24.200 SLOT0001 반환합니다. 해시 함수를 좋은 솔루션이 될 것이라고 가정하지만 구현 방법을 잘 모르겠습니다.IP 주소를 8 자 긴 문자열로 매핑하는 방법은 무엇입니까?

응용 프로그램은 C# Winforms .Net Framework 4.0입니다. 그리고 서버는 Windows 기반 서버입니다.

+0

IP를 난독 화하고 싶습니까? 아니면 문자열을 원래 IP로 되돌릴 수 있습니까? – Yahia

+0

나는 난독화할 솔루션을 선호하지만 문자열에서 IP를 알아내는 것이 허용 될 것입니다. – CleanCoder

+1

솔루션이 IPv6 주소를 지원해야합니까? –

답변

2

IP 주소는 직접 팔 개 진수 문자로 쓸 수있는 긴 4 바이트입니다 :

void Main() 
{ 
    var addr = IPAddress.Parse("192.80.24.200"); 
    var str = IPAddressToString(addr); 
    Console.WriteLine(str); 
} 

public string IPAddressToString(IPAddress address) 
{ 
    var result = new StringBuilder(8); 
    foreach(var b in address.GetAddressBytes()) 
    { 
     result.AppendFormat("{0:x2}", b); 
    } 
    return result.ToString(); 
} 
+2

IPv4 주소는 어쨌든 있습니다. –

5

IP 주소를 32 비트 숫자로 변환하고 8 자리의 16 진수로 변환하십시오.

1

여덟 문자 헥스 표현입니다.

  • 진수 : 192.80.24.200
  • HEX : C0.50.18.C8
  • 점이없는 16 진수 문자열 : C05018C8

이 빠르며 8 바이트로 IP를 포장하는 간단한 방법

관련 문제