[colibri] Conocer la dirección IP de mi equipo.
Nelson Castillo
nelsoneci en gmail.com
Vie Mar 28 18:37:50 COT 2008
2008/3/28 Manuel Alejandro Cerón Estrada <ceronman en gmail.com>:
> 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
Más información sobre la lista de distribución Colibri