What exactly means iOS networking interface name? what's pdp_ip ? what's ap?

I use following code to print all interface and it’s mac address

- ( void )interfaceInfo{

int                 mib[6];
size_t              len;
char                *buf;
unsigned char       *ptr;
struct if_msghdr    *ifm;
struct sockaddr_dl  *sdl;

mib[0] = CTL_NET;
mib[1] = AF_ROUTE;
mib[2] = 0;
mib[3] = AF_LINK;
mib[4] = NET_RT_IFLIST;

char name[128];
memset(name, 0, sizeof(name));
for (int i=1; i<20; i ++) {
    if (if_indextoname(i, name)) {
        printf("%s ",name);            
    }else{
        continue;
    }

    if ((mib[5] = if_nametoindex(name)) == 0) {
        printf("Error: if_nametoindex error\n");
        return NULL;
    }

    if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {
        printf("Error: sysctl, take 1\n");
        return NULL;
    }

    if ((buf = malloc(len)) == NULL) {
        printf("Could not allocate memory. error!\n");
        return NULL;
    }

    if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) {
        printf("Error: sysctl, take 2");
        free(buf);
        return NULL;
    }

        ifm = (struct if_msghdr *)buf;
        sdl = (struct sockaddr_dl *)(ifm + 1);
        ptr = (unsigned char *)LLADDR(sdl);
        NSString *macString = [NSString stringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X",
                       *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];
        printf(" %s\n",[macString cStringUsingEncoding:NSUTF8StringEncoding]);
        free(buf);
    }
    return nil;
}

I run the code on iPhone 5 and the output is

  • UILocalNotification in sleep mode on iPhone
  • How to use custom fonts in iPhone SDK?
  • Use vector artwork for iOS launch image in asset catalog?
  • Turn Off Clicking Keyboard Sound progrmmatically (iOS)
  • Parsing a local xml file in iOS sdk
  • Failed to save to data store: The operation couldn’t be completed. (Cocoa error 133020.)
  • lo0  00:00:00:00:00:00
    pdp_ip0  00:00:00:00:00:00
    pdp_ip1  00:00:00:00:00:00
    pdp_ip2  00:00:00:00:00:00
    pdp_ip3  00:00:00:00:00:00
    ap1  EA:8D:28:44:32:2F
    en0  E8:8D:28:44:32:2F
    en1  EA:8D:28:44:32:31
    awdl0  4A:79:85:44:5B:4D
    //I faked parts data
    

    I wanna know what’s the pdp_ip? and what’s the ap1,en1?

    I find out en0 is wifi hardware mac address

    Does ap1 and en1 is virtual interface?

    Thank you!

    3 Solutions Collect From Internet About “What exactly means iOS networking interface name? what's pdp_ip ? what's ap?”

    lo = localhost
    en = ethernet
    ap = Probably for access point (if you are acting as a wifi host)

    pdp_ip = maybe PDS data packet? PDS is the Phone Data Service, the data portion of GSM. Since there are four, I might postulate that PDS has the capability to offer four discrete channels.

    ap1, en0, en1 are names of the interfaces on iOS as well as on Mac. If you type in Terminal on Mac ifconfig you would get the same, en0, en1, etc.

    pdp_ip interfaces are those that are used for 3G and cellular data, while ap1 is used to represent currently active data connection, Wi-Fi, cellular data or bluetooth.

    From my research it appears (i.e. I haven’t found any confirming documentation) that if the code above returns more than one “awdl0” entry then Wi-Fi is enabled. Similarly, more than one “pdp_ip0” entry indicates that cellular data is enabled. Other libraries (most notably Reachability) can then be used to indicate that a data connection has been made using either of the above.