Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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!

like image 985
Aladdin Avatar asked Jan 15 '13 08:01

Aladdin


People also ask

What is Pdp_ip?

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. Follow this answer to receive notifications.

What is a network interface name?

Network interface names are based on whether the interface is a physical or virtual network interface. Physical interfaces are assigned names based on the slot number of the adapter. Interface group names are user specified. VLANs are named by combining the interface name and VLAN ID.

What is Anpi interface?

Autonomic Network Programming Interface (ANPI) allowing the discovery of network services, to manage their life cycle and enabling a suitable deployment of software components onto virtual resources.


1 Answers

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.

like image 192
Amar Kulo Avatar answered Oct 02 '22 04:10

Amar Kulo