Ich habe Code, mit dem ich die MAC-Adresse und die IP-Adresse der WiFi-Verbindung auf dem iPhone bestimmen kann, aber ich kann nicht herausfinden, wie die Subnetzmaske und Router-Adresse für erhalten die Verbindung. Kann mir hier jemand in die richtige Richtung zeigen?iPhone WiFi Subnet Mask und Router Adresse
11
A
Antwort
13
Sie können diese Informationen erhalten, indem Sie getifaddrs anrufen. (Ich benutze diese Funktion in einer App von mir die IP-Adresse des iPhone, um herauszufinden.)
struct ifaddrs *ifa = NULL, *ifList;
getifaddrs(&ifList); // should check for errors
for (ifa = ifList; ifa != NULL; ifa = ifa->ifa_next) {
ifa->ifa_addr // interface address
ifa->ifa_netmask // subnet mask
ifa->ifa_dstaddr // broadcast address, NOT router address
}
freeifaddrs(ifList); // clean up after yourself
Diese bekommt man die Subnetz-Maske; für the router address, see this question.
Dies ist alles alte Schule UNIX-Netzwerk-Zeug, müssen Sie wählen, welche der Schnittstellen ist die WiFi-Verbindung (andere Sachen wie eine Loopback-Schnittstelle wird auch dort sein). Dann müssen Sie möglicherweise Funktionen wie inet_ntoa() verwenden, abhängig davon, welches Format Sie die IP-Adressen lesen möchten. Es ist nicht schlecht, nur langweilig und hässlich. Habe Spaß!
3
NSString *address = @"error";
NSString *netmask = @"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)];
netmask = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr)];
}
}
temp_addr = temp_addr->ifa_next;
}
}
// Free memory
freeifaddrs(interfaces);
NSLog(@"address %@", address);
NSLog(@"netmask %@", netmask);
Verwandte Themen
- 1. berechnen Broadcast-Adresse von IP-und Subnet-Mask
- 2. Subnet Mask/23 bis zweiten octect 255.255.254.0
- 3. C# IPAD/iPhone MAC/Wifi-Adresse
- 4. wie WiFi-Signal in iPhone
- 5. Cocos2d iPhone - Sprite cliping/mask/frame
- 6. WiFi iPhone Anwendung
- 7. WiFi-Router mit API (Indoor-Positionierung)
- 8. erhalten Subnetzmaske und Gateway von IP-Adresse
- 9. Apache überschreiben Subnet IP-Bereich
- 10. Python: Einen IPv6-Socket zum Empfangen von Paketen erhalten, die für die Subnet-Router-Anycast-Adresse bestimmt sind
- 11. Erhalten Sie meine wifi IP-Adresse Android
- 12. Ziel-MAC-Adresse Feld des Wifi-Clients
- 13. AWS CloudFormation Problem mit VPC und Subnet
- 14. Können WIFI-Direkt- und WIFI-Station gleichzeitig arbeiten?
- 15. Jquery Mask Nummer mit Komma und Dezimal
- 16. Mask div mit CSS
- 17. Mask Minimalwerten in Matrixzeilen
- 18. Zugriff auf iPhone WiFi-Informationen über SDK
- 19. iPhone Benachrichtigung, wenn WiFi-Netzwerk ändert
- 20. Python-basierte IP-Adresse Rechner (ipcalc) Code
- 21. iPhone aktiver Netzwerktyp (2G, 3G, WiFi)
- 22. iphone wifi/3G Verbindung fallen Probleme
- 23. Wie bekomme ich die IP-Adresse des Peer-Geräts in Android für WiFi-Direct (WiFi-P2P)?
- 24. Obfuscate/Mask/Scramble persönliche Informationen
- 25. jQuery Tools Overlay Mask Problem
- 26. Wie kann man überprüfen IPv6-Adresse eines IPhone
- 27. Mehrere VPC und Subnet mit gleichen CIDR-Blöcken
- 28. DD-WRT Shell Skript Wifi IP und Name Zusatz
- 29. Raspberry PI 3: Wireless Hotspot (von WiFi zu WiFi anstelle von Ethernet zu WiFi)
- 30. Warum erstellt man ein maskiertes numpy array so langsam mit mask = None oder mask = 0
Momentan suche ich ICMP (Router Solicitation) oder ICMP (Echo-Anfrage, 1 Hop, sehen wer antwortet). Ich glaube nicht, dass mein Router auf Router-ICMP-Anfragen reagiert. Die zweite Methode ist, wie Traceroute funktioniert (glaube ich). Eine andere Option wäre eine DHCP-API (kann auf iPhone nicht gefunden werden) oder das Senden von DHCP-Paketen für Informationen (weil in meinem Fall immer DHCP vorhanden ist und der Router immer auch der DHCP-Server ist). – Bill
FYI - Die iPhone-Anwendung wurde entwickelt, um Sicherheits-/Zugriffsrichtlinien auf DLink-Home-NAT-Routern zu steuern (die Web-Schnittstelle ist ein Schmerz zu verwenden); Ich versuche einfach zu vermeiden, dass der Benutzer die Adresse des Routers eingibt. Sie müssen ein Passwort angeben, also keine große Sache, wenn ich hier keine gute Lösung finde. – Bill
@bvanderw - können Sie einen Link zu Ihrem Code oder der Dokumentation veröffentlichen, um die MAC-Adresse der WiFi-Verbindung zu bestimmen? Ich konnte es nicht aufspüren. – Ciaran