मेरे पास कोड है जो मुझे आईएसी पर वाईएसीआई कनेक्शन के मैक पते और आईपी पते को निर्धारित करने की अनुमति देता है, लेकिन मैं यह नहीं समझ सकता कि सबनेट मास्क और राउटर पता कैसे प्राप्त करें संपर्क। क्या कोई मुझे सही दिशा में इंगित कर सकता है?आईफोन वाईफाई सबनेट मास्क और राउटर पता
11
A
उत्तर
13
आप getifaddrs पर कॉल करके वह जानकारी प्राप्त कर सकते हैं। (मैं मेरा एक अनुप्रयोग में इस सुविधा का उपयोग iPhone के आईपी पते यह पता लगाने की।)
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 के लिए।
यह पुरानी स्कूल यूनिक्स नेटवर्किंग सामग्री है, आपको यह चुनना होगा कि कौन से इंटरफेस वाईफाई कनेक्शन हैं (लूपबैक इंटरफ़ेस जैसी अन्य सामग्री भी वहां होगी)। फिर आपको आईपी पते को पढ़ने के लिए इच्छित प्रारूप के आधार पर inet_ntoa() जैसे फ़ंक्शंस का उपयोग करना पड़ सकता है। यह बुरा नहीं है, सिर्फ थकाऊ और बदसूरत। मज़े करो!
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);
संबंधित मुद्दे
- 1. सबनेट मास्क
- 2. एक सबनेट मास्क
- 3. समस्या की गणना सबनेट मास्क
- 4. राउटर का आईपी पता प्राप्त करना जिसमें आईफोन कनेक्ट है
- 5. एक गैर पारंपरिक सबनेट मास्क का उपयोग
- 6. का पता लगाने और वाईफाई
- 7. आईफोन एसडीके वाईफाई
- 8. .net का उपयोग करके सबनेट मास्क कैसे प्राप्त करें?
- 9. वाईफाई
- 10. उद्देश्य-सी: राउटर पता कैसे प्राप्त करें?
- 11. फ्रंटेंड और व्यवस्थापक राउटर
- 12. आरटीएमएफपी और फ़ायरवॉल/राउटर
- 13. राउटर
- 14. सबनेट मास्क की एक तालिका में एक आईपी पता मिलान ... जावा में सबसे अच्छा तरीका क्या है?
- 15. लिनक्स पर मोनो का उपयोग करके सबनेट मास्क से पूछताछ कैसे करें?
- 16. राउटर
- 17. जावा का उपयोग कर स्थानीय सिस्टम के सबनेट मास्क कैसे प्राप्त करें?
- 18. एंड्रॉइड पर वाईफाई आईपी पता खोजें?
- 19. वाईफाई
- 20. मास्क
- 21. बढ़ती वाईफाई स्कैन दर
- 22. हेरोकू और आईपी मास्क
- 23. वाईफाई
- 24. वाईफाई
- 25. वाईफाई
- 26. मास्क
- 27. वाईफाई
- 28. वाईफाई
- 29. वाईफाई
- 30. ip_conntrack_tcp_timeout_established पूरे सबनेट
अभी मैं आईसीएमपी (राउटर आग्रह) या आईसीएमपी (गूंज अनुरोध, 1 हॉप, कौन जवाब देता हूं) देख रहा हूं। मुझे नहीं लगता कि मेरा राउटर राउटर आग्रह आईसीएमपी अनुरोधों का जवाब देता है; दूसरी विधि यह है कि कैसे traceroute काम करता है (मुझे विश्वास है)। एक अन्य विकल्प एक डीएचसीपी एपीआई होगा (आईफोन पर एक नहीं मिल सकता है) या जानकारी के लिए डीएचसीपी पैकेट भेज रहा है (क्योंकि मेरे मामले में हमेशा डीएचसीपी होगा और राउटर हमेशा डीएचसीपी सर्वर भी होगा)। – Bill
एफवाईआई - आईफोन एप्लिकेशन को डीएलआईएनएन होम एनएटी राउटर पर सुरक्षा/एक्सेस नीतियों को नियंत्रित करने के लिए डिज़ाइन किया गया है (वेब इंटरफेस का उपयोग करने के लिए दर्द है); मैं बस राउटर के पते में उपयोगकर्ता प्रकार बनाने से बचने की कोशिश कर रहा हूं। उन्हें पासवर्ड प्रदान करना होगा, इसलिए यदि कोई अच्छा समाधान नहीं मिल रहा है तो कोई बड़ा सौदा नहीं है। – Bill
@bvanderw - क्या आप वाईफाई कनेक्शन के मैक पते को निर्धारित करने के लिए अपने कोड या दस्तावेज के लिए एक लिंक पोस्ट कर सकते हैं? मैं इसे ट्रैक करने में सक्षम नहीं हूं। – Ciaran