CDZPinger
Easy-to-use ICMP ping for iOS - just create a CDZPinger and you delegate gets a callback every second with the average ping time.
Installation
Add the dependency to your Podfile
:
platform :ios
pod 'CDZPinger'
...
Run pod install
to install the dependencies.
Usage
#import "CDZPinger.h"
and:
CDZPinger *pinger = [[CDZPinger alloc] initWithHost:@"google.com"];
// keep a strong reference to pinger, maybe in a property somewhere
pinger.delegate = self;
// (assuming self is your CDZPingerDelegate)
In your delegate:
#pragma mark CDZPingerDelegate
- (void)pinger:(CDZPinger *)pinger didUpdateWithAverageSeconds:(NSTimeInterval)seconds
{
NSLog([NSString stringWithFormat:@"Received ping; average time %.f ms", seconds*1000]);
}
For timeout issue, set timeout value
CDZPinger *pinger = [[CDZPinger alloc] initWithHost:@"google.com"];
pinger.delegate = self;
pinger.pingTimeout = 2.0;
And implement delegate
#pragma mark CDZPingerDelegate
- (void)pinger:(CDZPinger *)pinger timeoutError:(NSError *)error
{
NSLog(@"%@ timeout", pinger.domainOrIp);
}
Requirements
CDZPinger
requires iOS 5.x+. It might work on iOS 4, but I haven't tested it.
There's also some chance it'll work on OS X, but again, I haven't tested it there either.
License
MIT License. See LICENSE for the full details.
Developer
Chris Dzombak, with ICMP ping code from Apple sample code.