inet_ntoa()的问题

MSDN:The inet_ntoa function converts an (Ipv4) Internet network address into an ASCII string in Internet standard dotted-decimal format.

Syntax

C++
char* FAR inet_ntoa(
  _In_  struct   in_addr in
);

Parameters

in [in]

An in_addr structure that represents an Internet host address.

Return value

If no error occurs, inet_ntoa returns a character pointer to a static buffercontaining the text address in standard ".'' notation. Otherwise, it returns NULL.

注意:返回的是静态指针。每次调用Inet_ntoa(),它就会覆盖上次调用时所使用的IP地址(内存被覆盖)

例如:

char *a1, *a2;  
a1 = inet_ntoa(ina1.sin_addr); /* 这是198.92.129.1 */ 
a2 = inet_ntoa(ina2.sin_addr); /* 这是132.241.5.10 */ 
printf("address 1: %s\n",a1); 
printf("address 2: %s\n",a2); 
输出如下: 
address 1: 132.241.5.10 
address 2: 132.241.5.10 

若要长久保存IP地址,还要事先定义一个内存区域,并将当前的静态区域内的IP地址拷贝到新定义的内存区域。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值