获取ipaddress的值

时间:2010-04-01 12:03:13

标签: c linux

我想在变量中获取mycomputer的ipaddress 此语句打印我的电脑的ipaddress 但我想把它分配给一个变量 如何从inet_ntoa(inaddrr(ifr_addr.sa_data))获取ipaddress的值到char*类型的变量ip。

printf("IP Address: %s\n", inet_ntoa(inaddrr(ifr_addr.sa_data)));

1 个答案:

答案 0 :(得分:2)

inet_ntoa已经返回char * - 它只是指向静态缓冲区,后续调用将覆盖该缓冲区。如果要保存该指向字符串,可以使用strdup()

char *ip;
/* ... */
ip = strdup(inet_ntoa(inaddrr(ifr_addr.sa_data)));

完成后,您应该在free()上致电ip