본문 바로가기
개발/Windows

UINT32 정수형 IP주소 스트링 변환하기 / MFC / C++

by lucidmaj7 2020. 2. 13.
728x90
반응형

https://en.wikipedia.org/wiki/IP_address

 

네트워크 관련 프로그래밍을 하다보면 IP주소를 정수로 표현하고 이를 String으로 바꾸거나 다시 String에서 정수형 IP주소로 바꾸는 경우가 잦다.

Socket 라이브러리를 통해 바꿀 수 도 있지만 비트연산을 조합하여 변환도 가능하다.

UINT32 IP 주소 -> CString

IPv4의 IP주소는 본래 8비트짜리가 4개 합처진 형태이다.
때문에 8비트씩 시프트연산을 통해 각 옥텟 값을 가져올 수 있다. 아래는 MFC에서 UINT32 IP주소를 CString으로 변환하는 예시 코드이다.

CString ipToString(UINT32 ipaddr)
{
    CString ipStr;
    ipString.format(_T("%d.%d.%d.%d"),
        (ipaddr>>24) & 0xFF,
        (ipaddr>>16) & 0xFF,
        (ipaddr>>8) & 0xFF,
        (ipaddr>>0) & 0xFF)
    return ipStr;
}
728x90
반응형

댓글