How to get Subnet Mask and Broadcast Address of Personal Hotspot in iOS
Asked Answered
P

1

11

I need to find out a way to find out subnet mask and broadcast address of my personal hotspot in iOS.

I am using the following way to find the IP address of the device if it's connected to WiFi. But can't figure out the way to get network properties for the Personal Hotspot.

+ (NSString *) localIPAddress
{
    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)
    {
        temp_addr = interfaces;
        
        while(temp_addr != NULL)
        {
            // check if interface is en0 which is the wifi connection on the iPhone
            if(temp_addr->ifa_addr->sa_family == AF_INET)
            {
                if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"])
                {
                    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
                }
            }
            
            temp_addr = temp_addr->ifa_next;
        }
    }
    
    freeifaddrs(interfaces);
    
    return address;
}
Protest answered 1/3, 2013 at 10:54 Comment(0)
F
11

where address is assigned, just insert:

netmask = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr)];
Facelifting answered 3/4, 2013 at 11:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.