从主机名获取服务器IP地址

Ale*_*lex 4 networking cocoa-touch objective-c ios

执行NSURLRequest主机名时,是否可以获取响应来自的服务器的IP地址?

NSURL方法:

- (NSString *)host;
Run Code Online (Sandbox Code Playgroud)

只返回主机名,我看不到从任何其他NSURL方法获取IP地址的方法.

也许有一种方法在启动之前执行主机查找NSURLRequest

fbe*_*rdo 11

您可以使用系统调用gethostbyname()来解析主机名,然后使用返回的结构来获取IP地址.看看最后一部分的inet_ntop().

示例代码

struct hostent *hostentry;
hostentry = gethostbyname("google.com");
char * ipbuf;
ipbuf = inet_ntoa(*((struct in_addr *)hostentry->h_addr_list[0]));
printf("%s",ipbuf);
Run Code Online (Sandbox Code Playgroud)

  • 请注意,不推荐使用inet_ntoa,您应该使用inet_ntop来支持IPv6地址. (2认同)