[英]How to know if an IP address is in local network, xcode
我想使用我的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
将为您提供状态。
UPDATE
Reachability reachabilityWithHostName:
不适用于本地IP,因为它无法解析地址。 因此,此解决方案不能回答问题。 但是,如下面注释中@Kerberos所引用,此启用ARC的库可用于检查与本地IP地址的连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.