我想使用我的 objective-c(Xcode) 程序知道 IP 地址是否在本地网络中。但是,问题是对于每个 IP 地址(即使它不在网络中),结果都是成功的。这是代码,请帮助我如何正确查找 IP 地址是否在本地网络中。
bool success = false;
const char *host_name = [@"192.168.0.115" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
bool isAvailable = success && (flags & kSCNetworkFlagsReachable) &&
!(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable)
{
//success
//connect to IP address
}
else
{
//Not success
}
最佳答案
使用此代码
Reachability* reachability = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain]; // does not work with local IP, ARC is not used.
NetworkStatus netStatus = [reachability currentReachabilityStatus];
netStatus
将为您提供状态。
更新
Reachability reachabilityWithHostName:
不适用于本地 IP,因为它无法解析地址。因此,此解决方案不回答问题。然而,正如下面评论中@Kerberos 所引述的那样,这个 ARC-enabled library可用于检查与本地 IP 地址的连接。
关于ios - 如何知道IP地址是否在本地网络中,xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12559767/