/CDZPinger

Easy-to-use ICMP Ping for iOS (and maybe OSX)

Primary LanguageObjective-CMIT LicenseMIT

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.