You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.6 KiB
64 lines
1.6 KiB
/*
|
|
Copyright (C) 2016 Apple Inc. All Rights Reserved.
|
|
See LICENSE.txt for this sample’s licensing information
|
|
|
|
Abstract:
|
|
Basic demonstration of how to use the SystemConfiguration Reachablity APIs.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <SystemConfiguration/SystemConfiguration.h>
|
|
#import <netinet/in.h>
|
|
|
|
|
|
typedef enum : NSInteger {
|
|
OSSNotReachable = 0,
|
|
OSSReachableViaWiFi,
|
|
OSSReachableViaWWAN
|
|
} OSSNetworkStatus;
|
|
|
|
#pragma mark IPv6 Support
|
|
//Reachability fully support IPv6. For full details, see ReadMe.md.
|
|
|
|
|
|
extern NSString *ossReachabilityChangedNotification;
|
|
|
|
|
|
@interface OSSReachability : NSObject
|
|
|
|
/*!
|
|
* Use to check the reachability of a given host name.
|
|
*/
|
|
+ (instancetype)reachabilityWithHostName:(NSString *)hostName;
|
|
|
|
/*!
|
|
* Use to check the reachability of a given IP address.
|
|
*/
|
|
+ (instancetype)reachabilityWithAddress:(const struct sockaddr *)hostAddress;
|
|
|
|
/*!
|
|
* Checks whether the default route is available. Should be used by applications that do not connect to a particular host.
|
|
*/
|
|
+ (instancetype)reachabilityForInternetConnection;
|
|
|
|
|
|
#pragma mark reachabilityForLocalWiFi
|
|
//reachabilityForLocalWiFi has been removed from the sample. See ReadMe.md for more information.
|
|
//+ (instancetype)reachabilityForLocalWiFi;
|
|
|
|
/*!
|
|
* Start listening for reachability notifications on the current run loop.
|
|
*/
|
|
- (BOOL)startNotifier;
|
|
- (void)stopNotifier;
|
|
|
|
- (OSSNetworkStatus)currentReachabilityStatus;
|
|
|
|
/*!
|
|
* WWAN may be available, but not active until a connection has been established. WiFi may require a connection for VPN on Demand.
|
|
*/
|
|
- (BOOL)connectionRequired;
|
|
|
|
@end
|
|
|
|
|