Radix
Radix

Reputation: 3657

How to check Internet status in iPhone

I wanted to check whether internet is connected or not using either the SystemConfiguration or the CFNetwork i am not quite sure which one.

Then i want to know that if the internet is connected then is it connected through wifi or not.

I tried an example where i used the below code

-(IBAction) shownetworkStatus
{
    NSString *str = @"http://www.google.com";

    NSURL *url = [NSURL URLWithString:str];

    NSURLRequest *req = [NSURLRequest requestWithURL:url];

    if (req!=NULL) {
        lbl.text = @"Connected";
    }
    else {
        lbl.text = @"notConnected";
    }

}


some say that its not valid as per apple and you have to use the SystemConfiguration Framework, Please let me know what needs to be done.

Also i personally think that what i am doing in the above code is not proper as if one day google may also be down due to maintenance or some other factors.

Also if you could provide me a link where i could display the name of the WIFI network then it would be really cool.

I searched the internet then i got these Reachability.h code which again is a bouncer as i wana learn the concepts not copy paste them

Thanks and Regards

Upvotes: 1

Views: 1203

Answers (2)

fsaint
fsaint

Reputation: 8759

Building on top of what Raxit mentions, I use the following code (extracted from the reachability example mentioned by Raxit) to check for internet access in my application delegate:

- (BOOL)isReachableWithoutRequiringConnection:(SCNetworkReachabilityFlags)flags
{
    BOOL isReachable = flags & kSCNetworkReachabilityFlagsReachable;

    BOOL noConnectionRequired = !(flags & kSCNetworkReachabilityFlagsConnectionRequired);
    if ((flags & kSCNetworkReachabilityFlagsIsWWAN)) {
        noConnectionRequired = YES;
    }

    return (isReachable && noConnectionRequired) ? YES : NO;
}

- (BOOL)isHostReachable:(NSString *)host
{
    if (!host || ![host length]) {
        return NO;
    }

    SCNetworkReachabilityFlags        flags;
    SCNetworkReachabilityRef reachability =  SCNetworkReachabilityCreateWithName(NULL, [host UTF8String]);
    BOOL gotFlags = SCNetworkReachabilityGetFlags(reachability, &flags);

    CFRelease(reachability);

    if (!gotFlags) {
        return NO;
    }

    return [self isReachableWithoutRequiringConnection:flags];
}


- (BOOL)connectedToNetwork {

    return [self isHostReachable:@"www.hostyoureallycareabouthavingaconnectionwith.com"];
}

Upvotes: 1

Raxit
Raxit

Reputation: 824

You can use the reachability code provided by Apple. It is sample code. you can find whole detail regarding internet connection. This is the link http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

Upvotes: 0

Related Questions