I found some iOS app which could scan the local network and list all the device information.
I wonder how.
Pic:
For iOS 7 and lower
#include <ifaddrs.h>
#include <arpa/inet.h>
- (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;
}
iOS 8
[[NSHost currentHost] address]
https://github.com/tonymillion/Reachability
Using Reachability, you can get subnet IP's reachability.
Reachability* reach = [Reachability reachabilityWithHostname:subnetIp];
Apple has a great article, which covers HostnameResolving topics. https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/NetworkingTopics/Articles/ResolvingDNSHostnames.html
You can try also simpler variant in iOS8
[[NSHost hostWithAddress:@"173.194.34.24"] name]
https://github.com/mongizaidi/LAN-Scan
here is a small project, that does the Local Area Network scan, you need only to resolve the hostnames, and you will get result that you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With