Ошибка ReachabilityWithAddress при присвоении ему IP-адреса - PullRequest
2 голосов
/ 22 февраля 2012

эй, я пытаюсь понять, могу ли я подключиться к IP-адресу.

Мой код атм:

#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];  

    }
}

Может кто-нибудь сказать мне, плз, как сделать эту работу?

Понятия не имею, как вставить туда IP-адрес ...

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Я протестировал этот образец в образце Reachability, предоставленном Apple, надеюсь, вы поняли идею.

//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];
0 голосов
/ 17 ноября 2017

У меня работает этот код:

    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];
...