对于IP而言不同之处主要在于两个方面,一是字节顺序;二是格式
一、字节顺序(NBO和HBO)
分为网络字节顺序和主机字节顺序,字节顺序也可理解为大、小端模式;
数值16的十六进制是0X0010,4096的十六进制是0X1000,在Intel的CPU机器中,由于是小端模式,则数值16的存储方式就是1000,4096的存储方式就是0010,而IBM类的机器是大端模式,存储方式就没有变化。
网络字节顺序NBO(Network Byte Order)
按照从高到低的顺序存储,即大端模式;
主机字节顺序HBO(Host Byte Order)
不同的机器HBO不相同,与CPU的设计有关,数据的顺序是由CPU决定的,而与操作系统无关;如Intel x86结构下,short型数0x1234表示为34 12,int型数0x12345678表示为78 56 34 12;
主要函数:
ntohs =net to host short int 16位
htons=host to net short int 16位
ntohl =net to host long int 32位
htonl=host to net long int 32位
二、IP格式
IP格式主要是整数形式和点分形式,比如点分制120.27.136.30的整数IP形式就是2015070238;
主要函数:
int inet_pton(int family,const char * strptr,void * addrptr);
const char * inet_ntop(int family,const void *addrptr,char * strptr,size_t len);