我在我的iOS应用程序中使用MMLANScanner库。它向我展示了连接到本地WiFi路由器的所有设备以及之前连接到本地WiFi路由器的设备。
我如何判断我所获得的设备IP目前是否已连接到我的本地WiFi路由器?
答案 0 :(得分:0)
你可以使用apple' Reachability'或者使用简单的ping。 以下是两个项目的链接。
[可达性] https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html
答案 1 :(得分:0)
使用Apple Reachability example这里有一些代码来检查设备的连接性。
#import "Reachability.h"
@interface ViewController : UIViewController
{
BOOL isInternetConnectionAvailable;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//--Reachability--
/*
Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the method reachabilityChanged will be called.
*/
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
self.internetReachability = [Reachability reachabilityForInternetConnection];
[self.internetReachability startNotifier];
[self updateInterfaceWithReachability:self.internetReachability];
//--+--//
}
#pragma mark Reachability
/*!
* Called by Reachability whenever status changes.
*/
- (void) reachabilityChanged:(NSNotification *)note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass:[Reachability class]]);
[self updateInterfaceWithReachability:curReach];
}
- (void)updateInterfaceWithReachability:(Reachability *)reachability
{
if (reachability == self.internetReachability)
{
NetworkStatus netStatus = [reachability currentReachabilityStatus];
BOOL connectionRequired = [reachability connectionRequired];
NSString* statusString = @"";
//
UIAlertController * connectivityAlert = [UIAlertController alertControllerWithTitle:@"Connectivity" message:[NSString stringWithFormat:@"Status:%@",statusString] preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction * ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
[connectivityAlert addAction:ok];
//
switch (netStatus)
{
case NotReachable: {
statusString = NSLocalizedString(@"Access Not Available", @"Text field text for access is not available");
/*
Minor interface detail- connectionRequired may return YES even when the host is unreachable. We cover that up here...
*/
connectionRequired = NO;
connectivityAlert.message = [NSString stringWithFormat:@"Status:%@",statusString];
[self presentViewController:connectivityAlert animated:YES completion:nil];
isInternetConnectionAvailable = NO;
break;
}
case ReachableViaWWAN: {
statusString = NSLocalizedString(@"Reachable WWAN", @"");
connectivityAlert.message = [NSString stringWithFormat:@"Status:%@",statusString];
isInternetConnectionAvailable = YES;
break;
}
case ReachableViaWiFi: {
statusString= NSLocalizedString(@"Reachable WiFi", @"");
connectivityAlert.message = [NSString stringWithFormat:@"Status:%@",statusString];
isInternetConnectionAvailable = YES;
break;
}
}
if (connectionRequired)
{
NSString *connectionRequiredFormatString = NSLocalizedString(@"%@, Connection Required", @"Concatenation of status string with connection requirement");
statusString= [NSString stringWithFormat:connectionRequiredFormatString, statusString];
connectivityAlert.message = [NSString stringWithFormat:@"Status:%@",statusString];
isInternetConnectionAvailable = NO;
[self presentViewController:connectivityAlert animated:YES completion:nil];
}
}
}
@end