
我好奇.
图:
解决方法 第1步 – 凝胶本地IP适用于iOS 7及更低版本
#include <ifaddrs.h>#include <arpa/inet.h>- (Nsstring *)getIPAddress { Nsstring *address = @"error"; struct ifaddrs *interfaces = NulL; struct ifaddrs *temp_addr = NulL; int success = 0; // retrIEve the current interfaces - returns 0 on success success = getifaddrs(&interfaces); if (success == 0) { // Loop through linked @R_404_6818@ of interfaces temp_addr = interfaces; while(temp_addr != NulL) { if(temp_addr->ifa_addr->sa_family == AF_INET) { // Check if interface is en0 which is the wifi connection on the iPhone if([[Nsstring stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { // Get Nsstring from C String address = [Nsstring stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } // Free memory freeifaddrs(interfaces); return address;} iOS 8
[[NSHost currentHost] address]
第2步 – 获取在线IP
https://github.com/tonymillion/Reachability
使用可访问性,您可以获得子网IP的可访问性.
Reachability* reach = [Reachability reachabilityWithHostname:subnetIp];
第3步 – 解析主机名
Apple有一篇很棒的文章,其中涵盖了HostnameResolving主题.
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/NetworkingTopics/Articles/ResolvingDNSHostnames.html
您也可以在iOS8中尝试更简单的变体
[[NSHost hostWithAddress:@"173.194.34.24"] name]
示例项目
https://github.com/mongizaidi/LAN-Scan这是一个小项目,它执行局域网扫描,您只需要解析主机名,您将获得所需的结果.
总结以上是内存溢出为你收集整理的ios – 如何在同一个wifi中获取其他设备的主机名?全部内容,希望文章能够帮你解决ios – 如何在同一个wifi中获取其他设备的主机名?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)