for(i=0;i<num.lifn_count;i++)
    {
        /* Get IP address */
        ioctl(sock,SIOCGLIFADDR,&(lifrs[ i ]));
        soap=(struct sockaddr_in *)&(lifrs[ i ].lifr_addr);
        soap2=(struct sockaddr_in *)&(ar.arp_pa);
        *soap2=*soap;
/* Print IP address */
        p=(unsigned char *)&(soap->sin_addr);
        printf("%s: %u.%u.%u.%u - ",lifrs[ i ].lifr_name,
            p[0],p[1],p[2],p[3]);
                /* Get ethernet address */
        if(ioctl(sock,SIOCGARP,&ar)<0)
        {
            printf("No ethernet address.\n");
        }
        else
        {
            p=(unsigned char *)&(ar.arp_ha.sa_data);
            printf("%02X:%02X:%02X:%02X:%02X:%02X\n",
                p[0],p[1],p[2],p[3],p[4],p[5]);

Which part of the above does not work for IPv6?
What happens if you use SIOCGLIFCONF and SIOCGLIFADDR for IPv6?

Hi Darren,

This 2 parts do not work.
It shows NO ethernet address and die IP Addresses always shows a fault number.

greetings,
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to