도와주세요.. 제발 프리즈!! 네트워크에서 이진수 출력하는거요
글쓴이: 익명 사용자 / 작성시간: 목, 2002/04/11 - 3:36오후
main()
{
struct hostent *hoststruct;
struct in_addr myindaddr;
char hostname[255];
int i;
gethostname(hostname,100);
hoststruct = gethostbyname(hostname);
printf("This hostname is %s\n",hoststruct->h_name);
i = 0;
while(hoststruct->h_addr_list[i] != NULL) {
myindaddr.s_addr = *((u_long *)(hoststruct-
>h_addr_list[i]));
printf("IP address %s\n", inet_ntoa(myindaddr));
i++;
}
printf("IP address %s\n",inet_addr(myindaddr));
}
이러케 하면 에러가 나와여.. 저기서 IP조수를 이진수로 출력해야 하는뎅
도저히 모르겠어요.. 가르쳐주세요.. 헬프~~
Forums:
Re: 도와주세요.. 제발 프리즈!! 네트워크에서 이진수 출력하는
myindaddr.s_addr = *((u_long *)(hoststruct->h_addr_list[i]));
myindaddr.s_addr은 그 자체가 32Bits 값이죠.
주의할점은 주소가 반대로 저장되었다는 점입니다.
즉, 127.0.0.1이면 1.0.0.127형태로 되어있죠.
16진수로 표현하자면
0100007F로 표기가 되어있다는 뜻입니다.
에러의 원인은 숫자(%d)를 문자(%s)형태로 출력하려했기에 발생하는
겁니다.
Re^2: 도와주세요.. 제발 프리즈!! 네트워크에서 이진수 출력하
감사합니다... ^^ 너무 감사해요... ... 감사합니다..
댓글 달기