gpt4 book ai didi

iphone - 如何解析一个互联网地址?

转载 作者:行者123 更新时间:2023-12-03 15:59:52 25 4
gpt4 key购买 nike

我有一个问题:如何将IP地址(如www.google.com)转换(解析)为IP地址(字节数组)?我尝试了不同的代码,但是如果地址不存在,每次代码崩溃。有办法检查吗?

+ (void) resolveIPAddress: (NSString*) dnsAddress {
struct hostent hostentry;
const char str = [ dnsAddress UTF8String ];
hostentry = gethostbyname(str);
char ipbuf[4];
char *ipbuf_ptr = &ipbuf[0];
ipbuf_ptr = inet_ntoa(*((struct in_addr *)hostentry->h_addr_list[0]));
printf("%s",ipbuf_ptr);
}

最佳答案

问题是您的方法尝试使用gethostbyname的结果而不检查h_errno。当h_errno不为零时,hostentry中的结果无效。在inet_ntoa中取消引用它们会导致崩溃。

+ (void) resolveIPAddress: (NSString*) dnsAddress {
struct hostent hostentry;
const char str = [ dnsAddress UTF8String ];
hostentry = gethostbyname(str);
if (h_errno) {
NSLog(@"Error resolving host: %d", h_errno);
return;
}
char ipbuf[4];
char *ipbuf_ptr = &ipbuf[0];
ipbuf_ptr = inet_ntoa(*((struct in_addr *)hostentry->h_addr_list[0]));
printf("%s",ipbuf_ptr);
}

关于iphone - 如何解析一个互联网地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28781636/

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