Objective-C : Wie Holen Sie die router-Adresse?

Habe ich versucht zu Holen, die router-Adresse auf diese Weise.

- (NSString *) routerIp {

  NSString *address = @"error";
  struct ifaddrs *interfaces = NULL;
  struct ifaddrs *temp_addr = NULL;
  int success = 0;

  //retrieve the current interfaces - returns 0 on success
  success = getifaddrs(&interfaces);
  if (success == 0)
  {
    //Loop through linked list of interfaces
    temp_addr = interfaces;
    while(temp_addr != NULL)
    {
      if(temp_addr->ifa_addr->sa_family == AF_INET)
      {
        //Check if interface is en0 which is the wifi connection on the iPhone
        if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"])
        {
          //Get NSString from C String //ifa_addr
          address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_dstaddr)->sin_addr)];
        }
      }

      temp_addr = temp_addr->ifa_next;
    }
  }

  //Free memory
  freeifaddrs(interfaces);

  return address;
}

Die router-Adresse sieht immer aus wie xxx.xxx.255.255 aber es soll Aussehen wie xxx.xxx.0.1 oder etwas in dieser Art...

Ist es, alles zu tun, um die gültige Adresse?

Vielen Dank für Ihre Hilfe!

InformationsquelleAutor Daniel | 2010-01-21
Schreibe einen Kommentar