Ethernet interface names with cygwin 1.7.5

laurent.metais@cp.com laurent.metais@cp.com
Mon Aug 9 09:03:00 GMT 2010


Hello !

I am using a very simple to find all ethernet on my PC with cygwin :

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>

int get_iface_list(struct ifconf *ifconf)
{
   int sock, rval;

   sock = socket(AF_INET,SOCK_STREAM,0);
   if(sock < 0)
   {
     perror("socket");
     return (-1);
   }

   if((rval = ioctl(sock, SIOCGIFCONF , (char*) ifconf  )) < 0 )
     perror("ioctl(SIOGIFCONF)");

   close(sock);

   return rval;
}

int main()
{
   static struct ifreq ifreqs[20];
   struct ifconf ifconf;
   int  nifaces, i;

   memset(&ifconf,0,sizeof(ifconf));
   ifconf.ifc_buf = (char*) (ifreqs);
   ifconf.ifc_len = sizeof(ifreqs);

   if(get_iface_list(&ifconf) < 0) exit(-1);

   nifaces =  ifconf.ifc_len/sizeof(struct ifreq);

   printf("Interfaces (count = %d):\n", nifaces);
   for(i = 0; i < nifaces; i++)
   {
     printf("\t%-10s\n", ifreqs[i].ifr_name);
   }
}

With cygwin 1.7.5 the result is :
$ ./a.exe
Interfaces (count = 5):
        {EE0A9E93-9A06-4CCB-B957-074C921D39FB}
        {46D151B0-33BB-4706-A450-B29F50F8095A}
        {B9BDEE37-C781-447B-B457-D4B17C576948}
        {A46ED7E6-A8A7-431E-BDE0-68DBEA2D334D}
        MS TCP Loopback interface

with release 1.5.25, the result was using the well-known names (lo0, eth0, 
eth1, etc...).

How can retrieve the standard names with release 1.7.5 ? Is it a new 
naming convention ?

Thanks for your help.

Best Regards,

Laurent Métais
Software Designer 

CP Technocenter 


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list