如何在iOS / macOS上以编程方式获取我的IP地址?

如何在iOS / macOS上以编程方式获取我的IP地址?

我想以编程方式获取iPad的IP地址。如何查询网络子系统以找出我的IPv4(和IPv6)地址是什么?

PS:我可以以某种方式禁用IPv6吗?


潇湘沐
浏览 555回答 3
3回答

守候你守候我

在您的实现文件.m中,#import&nbsp;<ifaddrs.h>#import&nbsp;<arpa/inet.h>//&nbsp;Get&nbsp;IP&nbsp;Address-&nbsp;(NSString&nbsp;*)getIPAddress&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;NSString&nbsp;*address&nbsp;=&nbsp;@"error"; &nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ifaddrs&nbsp;*interfaces&nbsp;=&nbsp;NULL; &nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;ifaddrs&nbsp;*temp_addr&nbsp;=&nbsp;NULL; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;success&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;retrieve&nbsp;the&nbsp;current&nbsp;interfaces&nbsp;-&nbsp;returns&nbsp;0&nbsp;on&nbsp;success &nbsp;&nbsp;&nbsp;&nbsp;success&nbsp;=&nbsp;getifaddrs(&interfaces); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(success&nbsp;==&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Loop&nbsp;through&nbsp;linked&nbsp;list&nbsp;of&nbsp;interfaces &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_addr&nbsp;=&nbsp;interfaces; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(temp_addr&nbsp;!=&nbsp;NULL)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(temp_addr->ifa_addr->sa_family&nbsp;==&nbsp;AF_INET)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Check&nbsp;if&nbsp;interface&nbsp;is&nbsp;en0&nbsp;which&nbsp;is&nbsp;the&nbsp;wifi&nbsp;connection&nbsp;on&nbsp;the&nbsp;iPhone &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if([[NSString&nbsp;stringWithUTF8String:temp_addr->ifa_name]&nbsp;isEqualToString:@"en0"])&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Get&nbsp;NSString&nbsp;from&nbsp;C&nbsp;String &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;=&nbsp;[NSString&nbsp;stringWithUTF8String:inet_ntoa(((struct&nbsp;sockaddr_in&nbsp;*)temp_addr->ifa_addr)->sin_addr)];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp_addr&nbsp;=&nbsp;temp_addr->ifa_next; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Free&nbsp;memory &nbsp;&nbsp;&nbsp;&nbsp;freeifaddrs(interfaces); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;address;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS