基础概念——理解IP地址
Posted grooovvve
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础概念——理解IP地址相关的知识,希望对你有一定的参考价值。
从程序员角度,可以把因特网看做是世界范围内的主机集合:
1)主机集合被映射为一组32位的IP地址。
2)这个IP地址被映射为一组称为因特网域名的标识符。
3)因特网主机上的进程能够通过连接和任何其他因特网主机上的进程通信。
IP地址
IP地址是一个32位无符号整数。
存放在一个结构中;
struct in_addr {
unsigned int s_addr;
} ;
为什么要用结构来存放标量IP地址?
把一个标量存放在一个结构中,是套接字接口早期实现的不幸产物。为IP地址定义一个标量类型应该更有意义。但现在更改已经太迟了,因为有大量的应用是基于此的了。
因为因特网主机可以有不同的主机字节顺序,TCP/IP为任意整数数据项定义了统一的网络字节顺序,即大端字节顺序。
即使主机字节顺序是小端法。Unix提供了一些函数在网络和主机字节顺序之间实现转换。
32位也就是4个字节;
IP地址通常是用点分十进制方式表示的;这种表示方式更方便人们阅读。
每个字节由它的十进制数表示,并且用句点和其他字节分开。
例如:128.2.194.242就是地址0x8002c2f2的点分十进制表示。
在Linux上,能够使用HOSTNAME命令来确定你的主机的点分十进制地址。
因特网程序使用inet_aton和inet_ntoa 函数来实现IP地址的点分十进制串之间的转换。
以上是关于基础概念——理解IP地址的主要内容,如果未能解决你的问题,请参考以下文章