问题
hey Im trying to see if I can connect to an IP address.
My code atm:
#import "ViewController.h"
#import "SystemConfiguration/SystemConfiguration.h"
@implementation ViewController
struct sockaddr_in ;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
Reachability *d = [Reachability reachabilityWithAddress:const struct sockaddr_in ???????];
NetworkStatus internetStatus = [d currentReachabilityStatus];
//NetworkStatus internetStatus = [d currentReachabilityStatus];
if ((internetStatus != ReachableViaWiFi) && (internetStatus!= ReachableViaWWAN)){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No internet" message:@"No internet" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
}
else {
UIAlertView *notify = [[UIAlertView alloc] initWithTitle:@"Internet" message:@"There is internet!(not)" delegate:self cancelButtonTitle:@"funny" otherButtonTitles:nil];
[notify show];
[notify release];
}
}
Can someone tell me plz how to make this work?
I have no idea how to insert an ip address there...
回答1:
I tested this sample in Reachability sample provided by apple, hope you get the idea.
//Change the host name here to change the server your monitoring
remoteHostLabel.text = [NSString stringWithFormat: @"Remote Host: %@", @"www.apple.com"];
//commented this line in the applicationDidFinishLaunching of ReachabilityAppDelegate.m file
//hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
struct sockaddr_in tAddr;
tAddr.sin_len = 16;
tAddr.sin_port = htons(80);
struct in_addr address;
address.s_addr = htons(0x4a7de048);
tAddr.sin_family = AF_INET;
//http://74.125.224.72/ this ip adress is for google
//4a7de048 **updated** Hexadecimal representation of IP address 74.125.224.72
hostReach = [[Reachability reachabilityWithAddress:&tAddr] retain];
回答2:
This code works for me:
struct sockaddr_in localWifiAddress;
bzero(&localWifiAddress, sizeof(localWifiAddress));
localWifiAddress.sin_len = sizeof(localWifiAddress);
localWifiAddress.sin_family = AF_INET;
localWifiAddress.sin_addr.s_addr = htonl(0x0A0A0A7B); // hex representation of your local IP
Reachability *reachability = [Reachability reachabilityWithAddress:&localWifiAddress];
reachability.key = kLocalWiFiConnection;
return [reachability isReachable];
来源:https://stackoverflow.com/questions/9393645/reachabilitywithaddress-error-giving-it-an-ip-address