地址转换函数:inet_ntoa() 和 inet_addr()

地址转换函数:inet_ntoa() 和 inet_addr()

inet_ntoa():

  • 函数原型:
char *inet_ntoa(struct in_addr);
  • 参数:in_addr是一个结构体,用来表示一个32位的IPV4地址。
  struct in_addr{
           in_addr_t s_addr;
       }
  • 返回值:返回点分十进制的字符串在静态内存中的指针。

    点分十进制:

    • 全称为点分(点式)十进制表示法,是IPV4的IP地址标识方法。
    • IPV4中用4个字节表示一个IP地址,每个字节按照十进制表示为0~255。
    • 点分十进制就是用4个从0~255的数字,来表示一个IP地址。
    • 例如:192.168.1.246
  • 头文件:<arpa/inet.h>

  • 别称:IP地址转换函数。

  • 功能:将网络字节序IP转化成点分十进制IP

    网络字节序:网络字节序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian(大端)排序方式。

inet_addr()

  • 简介:
    inet_addr方法可以转化字符串,主要用来将一个十进制的数转化为二进制的数,用途多余IPV4的IP转化。
  • 函数原型:
 in_addr_t inet_addr(const char* cp);
  • 参数:字符串,一个点分十进制的IP地址。
  • 返回值:
    若字符串有效,则将字符串转换为32位二进制网络字节序的IPV4地址;否则,为INADDR_NONE
  • 头文件:<arpa/inet.h>
  • 别称:IP地址转化函数。
  • 功能:将一个点分十进制的IP转换成一个长整数型(u_long类型)。

猜你喜欢

转载自blog.csdn.net/bit666888/article/details/81746085
今日推荐