我在我的iOS應用程序中使用MMLANScanner庫。它向我展示了連接到本地WiFi路由器的所有設備以及之前連接到本地WiFi路由器的設備。如何檢查本地WiFi網絡中的設備是否已連接或使用其IP地址?
我如何判斷我所獲得的設備IP是否連接到本地WiFi路由器?
我在我的iOS應用程序中使用MMLANScanner庫。它向我展示了連接到本地WiFi路由器的所有設備以及之前連接到本地WiFi路由器的設備。如何檢查本地WiFi網絡中的設備是否已連接或使用其IP地址?
我如何判斷我所獲得的設備IP是否連接到本地WiFi路由器?
利用蘋果公司的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
可達性類還顯示脫機設備可達到的狀態。我已經嘗試過可達性。 – appleBoy21
感謝您的回答。但是,對於每個我得到的IP地址,可達性始終顯示爲可REACHABLE。 – appleBoy21