inet_ntoa()

更新时间:2024-06-27 21:09

inet_ntoa()是编程语言,功能是将网络地址转换成“.”点隔的字符串格式。

简介

函数功能:将网络地址转换成“.”点隔的字符串格式。

所需库: winsock.h

也可以使用:

即在程序开头写:

#include

函数原型: char FAR* PASCAL FAR inet_ntoa( struct in_addr in);

MSDN上本函数的原型描述为:unsigned long inet_addr( __in const char *cp);

in:一个表示Internet主机地址的结构。

注释:

本函数将一个用in参数所表示的Internet地址结构转换成以“.” 间隔的诸如“a.b.c.d”的字符串形式。请注意inet_ntoa()返回的字符串存放在WINDOWS套接口实现所分配的内存中。应用程序不应假设该内存是如何分配的。在同一个线程的下一个WINDOWS套接口调用前,数据将保证是有效。

返回值:

若无错误发生,inet_ntoa()返回一个字符指针。否则的话,返回NULL。其中的数据应在下一个WINDOWS套接口调用前复制出来。

相关函数:inet_addr().

linux下:

函数声明:char *inet_ntoa(struct in_addr in);

将一个32位网络字节序的二进制IP地址转换成相应的点分十进制的IP地址(返回点分十进制的字符串在静态内存中的指针)。

所在头文件:

//end linux 下

程序示例

程序示例1:

下面这个例子来自MSDN:

程序示例2:

实际运行结果如下:

192.168.0.74 : 192.168.0.74 //从这里可以看出,printf里的inet_ntoa只运行了一次。

192.168.0.74

211.100.21.179

inet_ntoa返回一个char *,而这个char *的空间是在inet_ntoa里面静态分配的,所以inet_ntoa后面的调用会覆盖上一次的调用。第一句printf的结果只能说明在printf里面的可变参数的求值是从右到左的,仅此而已。

程序示例3:

将示例2修改一下,使其运行在VC++6.0下:

程序示例4:

将示例1修改一下,使其运行在VC2008下:

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}