728x90
반응형
네트워크 관련 프로그래밍을 하다보면 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
반응형
'개발 > Windows' 카테고리의 다른 글
UINT32[4] IPv6를 스트링으로 변환하기 / MFC, C++ (0) | 2020.02.19 |
---|---|
DeviceIoControl에서 Overlapped I/O 사용하기 (4) | 2020.02.18 |
MFC AfxBeginThread 사용시 주의: m_bAutoDelete (0) | 2020.01.30 |
Windows 커널모드 메모리 할당과 페이지 단편화 -ExAllocatePoolWithTag (0) | 2020.01.14 |
DeviceIoControl 버퍼 사용법 (0) | 2020.01.07 |
댓글