IP adresi ve iPhone üzerindeki WiFi bağlantısının IP adresini belirlememi sağlayan bir kod var, ancak Subnet Mask ve Router adresinin nasıl alınacağını anlayamıyorum bağlantı. Beni buraya doğru yönlendiren var mı?IPhone WiFi Alt Ağ Maskesi ve Router Adresi
11
A
cevap
13
getifaddrs numaralı telefonu arayarak bu bilgileri alabilirsiniz. (Ben iPhone'un IP adresini anlamaya benim bir uygulamasında bu işlevi kullanın.) Bu, alt ağ maskesini alır
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
; the router address, see this question için.
Bu, tüm eski okul UNIX ağ iletişimi şeyleri, hangi arabirimlerin WiFi bağlantısı olduğunu seçmek zorundasınız (geridönüş arabirimi gibi diğer şeyler de orada olacak). Sonra IP adreslerini okumak istediğiniz formata bağlı olarak inet_ntoa() gibi işlevleri kullanmanız gerekebilir. Kötü değil, sadece can sıkıcı ve çirkin. İyi eğlenceler!
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);
İlgili konular
- 1. iOS'ta Kişisel Bağlantı Noktasının Alt Ağ Maskesi ve Yayın Adresi Nasıl Alınır
- 2. Alt ağ maskesi (leri) Linux'ta Mono kullanarak nasıl sorgulanır?
- 3. Ağ ve yayın adresini IP adresi ve alt ağ maskesinden nasıl belirleyebilirim? Örneğin
- 4. WiFi iPhone Uygulaması
- 5. Android'de WIFI arabiriminin MAC adresi nasıl alınır?
- 6. kimse IP adresi belirli bir ağ/ağ maskesi dan ise bir java bileşeni kontrol etmek biliyor mu?
- 7. Ubuntu makinesinde ağ geçidi IP olarak farklı alt ağ adresi ayarlama
- 8. iOS'ta kullanılabilir wifi ağ adı nasıl kullanılabilir
- 9. Yeniden yapılandırmalar aracılığıyla wifi yapılandırması ve bağlı ağ nasıl hatırlanır
- 10. Ağ Bağlantısı Bant Genişliği (hız) wifi ve mobil veri
- 11. HTTPserver.ino ile Adafruit CC3000 wifi
- 12. doğrula iphone UITextField e-posta adresi
- 13. React-router ve nginx
- 14. Angular2 Router ve OnInit
- 15. Bir HTML5 iphone/android uygulamasında ağ etkinliğini izleme?
- 16. UIView üzerinde gradyan maskesi
- 17. Ağ trafiğini Wifi veya TMobile ağı üzerinden zorlamak mümkün mü?
- 18. Ağ wifi yönlendiricideki tüm çalışan IP'leri bulun ios
- 19. Ağ Yazıcısı desteği?
- 20. Android Cihazı WiFI
- 21. UI Router ve sorgu parametreleri
- 22. React Router 4 ve enzim
- 23. Can WIFI doğrudan ve WIFI istasyonu aynı anda çalışabilir mi?
- 24. PhoneGap ve iPhone 5: Üst ve alt siyah şeritleri kaldırın
- 25. HttpClient: her yuva adresi (protokol/ağ adresi/bağlantı noktası) için yalnızca bir kullanıma izin veriliyor
- 26. Windows sürücü harfini bir yolla (alt ve ağ) çözme
- 27. Bağlan Aç WiFi
- 28. GameKit wifi bağlantısı?
- 29. iOS/iPhone/iPad'de WiFi şifreleme modu nasıl alınır?
- 30. Android IP, DNS, AĞ GEÇİDİ ayarını programatik olarak ayarlama
Şu anda ICMP (yönlendirici istekleri) veya ICMP'ye (eko isteği, 1 atlama, yanıtları gör) bakıyorum. Yönlendiricimin yönlendirici istek ICMP isteklerine yanıt verdiğini düşünmüyorum; ikinci yöntem, traceroute'un nasıl çalıştığını (inanıyorum). Başka bir seçenek, bir DHCP API'si (Iphone'da bulamıyor) veya bilgi için DHCP paketleri gönderiyor (çünkü benim durumumda her zaman DHCP olacak ve yönlendirici her zaman DHCP sunucusu olacaktır). – Bill
FYI - iPhone uygulaması, DLink Home NAT yönlendiricilerindeki güvenlik/erişim ilkelerini kontrol etmek için tasarlanmıştır (Web arabirimi kullanmak acıdır); Kullanıcı tipini yönlendiricinin adresinde yapmaktan kaçınmaya çalışıyorum. Şifre sağlamalılar, bu yüzden burada iyi bir çözüm bulamıyorsam çok da büyük bir şey değil. – Bill
@bvanderw - WiFi bağlantısının MAC adresini belirlemek için kodunuza veya belgelere bir bağlantı gönderebilir misiniz? Onu takip edemedim. – Ciaran