本章主要是介绍IP地址的子网划分。
公式: (HOST IP) & (NET MASK) = (NET IP)
IP地址按子网大小分为以下几类:
开始 结束 网络地址位 主机地址位
A 0.0.0.0 127.255.255.255 7 24
B 128.0.0.0 191.255.255.255 14 16
C 192.0.0.0 223.255.255.255 21 8
D 224.0.0.0 239.255.255.255 28 N/A
E 240.0.0.0 247.255.255.255 27 N/A
注意:
1. 0和255通常不用于设置IP地址。
2. 10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
3. 127.X.X.X是保留地址,用做循环测试用的。
4. 172.16.0.0—172.31.255.255是私有地址
5. 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
6. 92.168.X.X是私有地址
7. D类地址用于广播,通常不用于设置主机IP。
8. E类地址保留,仅作实验和开发用
我们常用的局域网默认地址192.168.0.0 属于C类地址。
接下来介绍了几个函数:
unsigned long inet_addr(const char *string);
作用:将IP地址从字符串格式转化为整数格式(网络序)
使用方法:
adr_inet.sin_addr.s_addr = inet_addr("127.0.0.95");
if ( adr_inet.sin_addr.s_addr == INADDR_NONE )
return err;
int inet_aton(const char *string, struct in_addr *addr);
作用:将IP地址从字符串格式转化为整数格式(网络序)
使用方法:
if ( !inet_aton("127.0.0.23",&adr_inet.sin_addr) )
return err;
char *inet_ntoa(struct in_addr addr);
作用:将IP地址从整数格式(网络序)转化为字符串格式
使用方法:
struct sockaddr_in addr; /* Socket Address */
printf("IP ADDR: %s\n",inet_ntoa(addr.sin_addr));
unsigned long inet_network(const char *addr);
作用:将IP地址从字符串格式转化为整数格式(本地序(也就是如果本地机器为
Big-Endian,则转化后的整数也是Big-Endian))
使用方法:
unsigned long net_addr;
net_addr = inet_network("192.168.9.1") & 0xFFFFFF00;
unsigned long inet_lnaof(struct in_addr addr);
作用:将IP地址从字符串格式转化为整数格式(本地序),并去掉子网IP
使用方法:
struct sockaddr_in addr; /* Socket Address */
unsigned long host_id; /* Host ID number */
host_id = inet_lnaof(addr.sin_addr);
unsigned long inet_netof(struct in_addr addr);
作用:将IP地址从字符串格式转化为整数格式(本地序),并去掉主机IP
使用方法:
struct sockaddr_in addr; /* Socket Address */
unsigned long net_id; /* Network ID number */
net_id = inet_netof(addr.sin_addr);
struct in_addr inet_makeaddr(int net,int host);
作用: 通过子网地址与主机地址合成一个网络地址
分享到:
相关推荐
Linux Socket Programming by Example 英文第二版,内有大量的实例代码,很好的教程……
实战Linux socket编程Linux Socket Programming By Example完整配套源代码,网上尚无完整的源代码。都已通过调试,特与大家分享!!!
Linux Socket Programming By Example
Linux Socket Programming By Example.pdf
Linux Socket Programming By Example
linux socket programming
Linux Socket Programming by Example.pdf Linux Socket Programming by Example.pdf
linux socket programming by example code
Linux Socket Programming by Example
linux socket tutorial
Consequently, a “by example” approach to socket programming is used here. Each chapter builds upon the previous, until all of the basic concepts are mastered in Part 1, “Basic Socket ...
linux socket编程的英文版教程,里面包含实例包
实战Linux Socket编程_2-1 Socket编程新手使用
linux-socket-select-异步聊天 linux-socket-select-异步聊天 linux-socket-select-异步聊天
Linux socket programming
Linux Socket Programming by Example Warren W.Gay QUE 出版社 比较深入的介绍了在类unix系统下进行socket网络编程的知识,并且包含了大量的应用实例 电子版,非扫描
Hands-On Network Programming with C: Learn socket programming in C and write secure and optimized network code Author: Lewis Van Winkle Pub Date: 2019 ISBN: 978-1789349863 Pages: 478 Language: English...