2008/3/28 Manuel Alejandro Cerón Estrada <[EMAIL PROTECTED]>: > Hola a todos. > > Tengo un equipo con varias interfaces de red y varias direcciones IP. > Necesito una forma de saber desde un programa, cuál de todas las > direcciones IP es aquella que concuerda con una determinada red, por > ejemplo 192.168.0.25.0/24. También necesito que esto funcione tanto en > Linux como en windows. > > La solución que tengo hasta el momento es hacer un script que abra > ifconfig en linux e ipconfig en windows, examine las lineas y me diga > cual es la dirección que necesito. Pero me parece que esta es una > solución machetera.
En C también se puede. Por acá copié un código que encontré en un foro (ahí está el enlace). http://svn.arhuaco.org/svn/src/junk/trunk/network/ip-and-mac.c En /usr/include/net/if.h está la estructura ifreq. Esta puede servir. struct ifreq { # define IFHWADDRLEN 6 # define IFNAMSIZ IF_NAMESIZE union { char ifrn_name[IFNAMSIZ]; /* Interface name, e.g. "en0". */ } ifr_ifrn; union { struct sockaddr ifru_addr; struct sockaddr ifru_dstaddr; struct sockaddr ifru_broadaddr; struct sockaddr ifru_netmask; struct sockaddr ifru_hwaddr; short int ifru_flags; int ifru_ivalue; int ifru_mtu; struct ifmap ifru_map; char ifru_slave[IFNAMSIZ]; /* Just fits the size */ char ifru_newname[IFNAMSIZ]; __caddr_t ifru_data; } ifr_ifru; }; Atte, N.- -- http://arhuaco.org _______________________________________________ Lista de correo de Colibri Colibri@listas.el-directorio.org http://listas.el-directorio.org/cgi-bin/mailman/listinfo/colibri El Directorio, el sitio del Software Libre en Colombia: http://www.el-directorio.org