本文共 1783 字,大约阅读时间需要 5 分钟。
在Objective-C中实现域名到IP地址的转换,可以利用C语言的getaddrinfo函数,这是进行DNS查询的标准方法。本文将指导您创建一个macOS命令行工具,实现从域名到IP地址的转换。
目标:创建一个macOS命令行工具,用户输入域名后,程序将输出该域名的所有IP地址。
主要功能:
getaddrinfo进行DNS解析。技术选型:Objective-C,基于macOS的命令行工具。
File > New > Project。macOS > Command Line Tool,点击 Next。DomainToIPConverter),选择 Objective-C 作为语言,点击 Next。Create。将项目中的 main.m 文件替换为以下内容:
#import#import #import #include #include int main(int argc, char *argv) { NSLog(@"Domain to IP Converter\n"); if (argc != 2) { printf("Usage: domain2ip \n"); return 1; } char *domain = argv[1]; struct hostent *host; if (gethostbyname(domain) == NULL) { printf("Host not found: %s\n", domain); return 1; } if ((host = gethostbyname(domain)) == NULL) { printf("Host not found: %s\n", domain); return 1; } struct in_addr inet_addr; inet_aton(host->h_name, &inet_addr); printf("IP Address: %s\n", inet_ntoa(&inet_addr)); return 0;}
File > New > Project。macOS > Command Line Tool 模板,点击 Next。DomainToIPConverter),选择 Objective-C,点击 Next。Create。将项目中的 main.m 文件替换为以下内容:
#import#import #import #include #include int main(int argc, char *argv) { NSLog(@"Domain to IP Converter\n"); if (argc != 2) { printf("Usage: domain2ip \n"); return 1; } char *domain = argv[1]; struct hostent *host; if (gethostbyname(domain) == NULL) { printf("Host not found: %s\n", domain); return 1; } struct in_addr inet_addr; inet_aton(host->h_name, &inet_addr); printf("IP Address: %s\n", inet_ntoa(&inet_addr)); return 0;}
转载地址:http://yvifk.baihongyu.com/