⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netmask.c

📁 目前已经有很多介绍计算机网络的书籍
💻 C
字号:
/* netmask.c: *  * Classify an IP address: */#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>intmain(int argc,char **argv) {    int x;               /* Index variable */    struct sockaddr_in adr_inet;/* AF_INET */    int len_inet;               /* length  */    unsigned msb; /* Most significant byte */    char class;    char *netmask;    static struct {        unsigned char   ip[4];    } addresses[] = {        { { 44,135,86,12 } },        { { 127,0,0,1 } },        { { 172,16,23,95 } },        { { 192,168,9,1 } }    };    for ( x=0; x<4; ++x ) {        /*         * Set up the socket address, to         * demonstrate how to classify it:         */        memset(&adr_inet,0,sizeof adr_inet);        adr_inet.sin_family = AF_INET;        adr_inet.sin_port = htons(9000);        memcpy(&adr_inet.sin_addr.s_addr,            addresses[x].ip,4);        len_inet = sizeof adr_inet;        /*         * Classify this address:         *         * 1. Get the Most Significant Byte         * 2. Classify by that byte         */        msb = *(unsigned char *)            &adr_inet.sin_addr.s_addr;        if ( (msb & 0x80) == 0x00 ) {            class = 'A';            netmask = "255.0.0.0";        } else if ( (msb & 0xC0) == 0x80 ) {            class = 'B';            netmask = "255.255.0.0";        } else if ( (msb & 0xE0) == 0xC0 ) {            class = 'C';            netmask = "255.255.255.0";        } else if ( (msb & 0xF0) == 0xE0 ) {            class = 'D';            netmask = "255.255.255.255";        } else  {            class = 'E';            netmask = "255.255.255.255";        }        printf("Address %u.%u.%u.%u is class %c "            "netmask %s\n",            addresses[x].ip[0],            addresses[x].ip[1],            addresses[x].ip[2],            addresses[x].ip[3],            class,            netmask);    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -