Linux网络编程--IP转换函数--inet_addr和inet_ntoa

 

Linux下IP转换工具::

#Include <sys/types.h>

#include <sys/socket.h>

#include <arpa/inet.h>

 

strcut sockaddr_in   src;

 

src.sin_addr.s_addr   =  inet_addr("*.*.*.*");                 //构建网络地址。

 

printf("%s\n",inet_ntoa(src.sin_addr));             //将网络地址转换成字符串。

 

 

注意::

inet_ntoa存在的问题是inet_ntoa的返回值是一个static类型的char *指针,所以会出现问题::

 

char *a1,a2;

src.sin_addr.s_addr  =  inet_addr("192.168.1.123");

a1   =inet_ntoa(src.sin_addr);                  

src.sin_addr.s_addr = inet_addr("192.168.1.124");

a2 = inet_ntoa(src.sin_addr);

 

printf("a1:%s\n",a1);

显示为::         a1:192.168.1.124

printf("a2:%s\n",a2);

显示为:          a2:192.168.1.124

 

原因是静态的static   char *

 

 

posted @ 2012-07-22 00:47  Rabbit Nick  阅读(1554)  评论(0编辑  收藏  举报