gpt4 book ai didi

c++ - 将 inet_ntop 的结果转换为字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:46 26 4
gpt4 key购买 nike

如何将函数 inet_ntop (const char *) 的返回值转换为 string

代码:

string ip = inet_ntop(b->ifa_addr->sa_family,tempAddrPtr,addressOutputBuffer, sizeof(addressOutputBuffer));

总是出现段错误...

struct ifaddrs *a;
void *tempAddrPtr = NULL;
struct ifaddrs *b;
char addressOutputBuffer[INET6_ADDRSTRLEN];
int i=0;
i=getifaddrs(&a);
cout << i;
b=a;
cout << name;
for (b = a; b; b = b->ifa_next) {
cout << b->ifa_name;

if(b->ifa_addr->sa_family == AF_INET)
tempAddrPtr = &((struct sockaddr_in *)b->ifa_addr)->sin_addr;
else
tempAddrPtr = &((struct sockaddr_in6 *)b->ifa_addr)->sin6_addr;
printf(" Internet Address: %s \n",
inet_ntop(b->ifa_addr->sa_family,
tempAddrPtr,
addressOutputBuffer,
sizeof(addressOutputBuffer)));
string ip = inet_ntop(b->ifa_addr->sa_family,tempAddrPtr,addressOutputBuffer, sizeof(addressOutputBuffer));

}
freeifaddrs(a);

最佳答案

inet_ntop 返回 char*,如果您的 inet_ntop 返回,将正确生成字符串 ip 对象。突兀的部分是inet_ntop参数,带指针的参数。

一些调试提示:

1. check b is null or not
2. tempAddrPtr is valid or not
3. addressOutputBuffer is valid or not

关于c++ - 将 inet_ntop 的结果转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13437743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com