2010-07-20 27 views
1

J'essaie de trouver un moyen simple de vérifier si une adresse IP appartient à un iPhone. Une solution que je peux imaginer est d'utiliser nmap pour déterminer le système d'exploitation de l'adresse IP spécifiée et ensuite vérifier si c'est iOS .. Est-ce une bonne façon? Sinon, quelqu'un pourrait-il me suggérer une alternative?Existe-t-il un moyen de savoir si une adresse IP appartient à un iPhone?

Merci, Thanasis

+0

Est-ce du point de vue d'une application de serveur, peut-être HTTP? Si oui, les en-têtes HTTP peuvent aider. – SirDarius

+0

Je ne pense pas qu'il existe un sous-ensemble réservé aux iPhones. Vous ferez probablement mieux d'inspecter les en-têtes HTTP comme ci-dessus, ou la chaîne d'agent utilisateur envoyée avec des requêtes, mais les deux peuvent facilement être usurpées. –

Répondre

0

Nous pouvons obtenir l'adresse IP par ce code:

- (NSString *)getIPAddress 
    { 
     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 
         address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; 
        } 
       } 

       temp_addr = temp_addr->ifa_next; 
      } 
     } 

     // Free memory 
     freeifaddrs(interfaces); 

     return address; 
    } 
+0

Oui, mais ce code obtient l'adresse IP s'il est exécuté sur un périphérique .. Ce que je cherchais, c'est un moyen de trouver si une adresse IP donnée appartient à un iphone, sans avoir accès à l'appareil. Je veux dire le faire à distance avec un peu de scan .. –