본문 바로가기

programming/MFC

CString 으로 받은 IP Address를 4byte로 자르기


IP Address를 문자열을 받으면 각 한 BYTE로 나누는 방식입니다.

strtok() 함수를 사용하였습니다. - 함수에 대한 자세한 내용은 MSDN http://msdn.microsoft.com/ko-kr/library/2c8d19sb(VS.90).aspx

strIpAddres = "192.168.0.0"    이렇게 받는다고 하면...

char* szIpAddress;
BYTE  m_IpAddr[4];

char *p;
 int i = 0;
 p = strtok(szIpAddress, ".");  // 192 대입됨
 m_IpAddr[i] = atoi(p);        
 while(p!=NULL) 
 {
  i++;
  p = strtok(NULL, "."); // 168  -> 0 -> 0 순서대로 대입 (이유는 아래)
  if(p)
 IpAddr = atoi(p);
 } 

이렇게 하면 BYTE m_IpAddr[4];  에 [0] ~ [3] 배열에 192.168.0.0 이 들어갑니다.

ex)
IpAddr[0] ->192
IpAddr[1] ->168
IpAddr[2] ->0
IpAddr[3] ->0


-- 아래 --
strtok 함수 사용 할때 알아야 할점)

처음 호출할땐 strtok(szIpAddress, "." ) 이것처럼 해당 문자열의 처음시작주소를 넘겨주고

다음 호출할땐 좀 전에 니가 바꿔버린 NULL부터 다시 토큰을 뽑아내라고 strtok( NULL, "." )이라고 집어넣어야 합니다.

strtok() 함수의 특성(?)이라고 합니다.