티스토리 뷰

 책 ) 뇌를 자극하는 TCP/IP 소켓프로그래밍

여기서 주의할 점은 #define CLASS_MASK htonl(15<<4) 입니다.

#pragma warning(disable:4996)
#include<stdio.h>
#include<WinSock2.h>
#include<string.h>
#pragma comment(lib, "ws2_32.lib")
#define CLASS_MASK htonl(15<<4)

int main() {
	char class_name[6][16] = { {"E class\0"},{"D class\0"},{"C class\0"},{"B class\0"},{"A class\0"},{"\0"} };
	unsigned int laddr;
	unsigned int haddr;
	int i;
	const char* ip = "197.167.0.1";
	laddr = ::inet_addr(ip);
	if (laddr == INADDR_ANY) {
		printf("INADDR_ANY");
		return 1;
	}
	else if (laddr == INADDR_ANY) {
		printf("INADDR_ANY\n");
		return 1;
	}
	haddr = ntohl(laddr);
	for (i = 0; i < 5; i++) {
		if (((CLASS_MASK << i) & (haddr)) == (CLASS_MASK << i))
			break;
	}
	printf("%s -> %s\n", ip, class_name[i]);

}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함