Sistemas Operativos > GNU/Linux

 Funcion Para Saber La Ip

(1/1)

odp77:
hola, estoy en el desarrollo de un programa en c linux (gcc) y necesito una funcion (no con scripts) para saber la IP de la maquina en el que se esta ejecutando.

gracias y saludos.....   :hola:

su -:
man ifconfig  ;)
http://www.lehman.cuny.edu/cgi-bin/man-cgi?ifconfig
http://en.wikipedia.org/wiki/Ifconfig
Almacenas el retorno de la ejecucion de ifconfig y simplemente lo extraes.
Aunque, si el equipo es un servidor, con POSIX obtienes el nombre de la maquina y con Sockets combiertes el dns en ip.
 :hola:

Last Dragon:
Mira, salvo que seas root esa información pudiera ser privilegiada sin embargo en el espacio de usuario los driver escriben su información en la carpeta /proc

La red esta en el directorio /proc/net

Ahí encontraras los archivos que emanan del kernel por ejemplo el comando route tiene toda la información de rutas

[root@lastdragon net]# cat route
Iface   Destination     Gateway         Flags   RefCnt  Use     Metric  Mask   M
TU      Window  IRTT
eth0    0000FEA9        00000000        0001    0       0       0       0000FFFF
0       0       0

eth0    0000A8C0        00000000        0001    0       0       0       0000FFFF
0       0       0

eth1    0000A8C0        00000000        0001    0       0       0       0000FFFF
0       0       0

eth2    0000007F        00000000        0001    0       0       0       000000FF
0       0       0

eth0    00000000        FE05A8C0        0003    0       0       0       00000000
0       0       0


Checa la ultima línea

 eth0    00000000        FE05A8C0        0003    0       0       0       00000000

La tercera columna dice FE05A8C0  en decimal es 254.5.168.192 que obviamente esta invertido a: 192.168.5.254

El lugar mas sano para obtener esa información es leyendo los archivos de /proa/net lee los demás archivos encontraras hasta mas info de la que solicitas como datos enviados, recibidos, etc, etc, etc,

su -:
Buen punto.
Mira hay un comando que se llama netstat, te retorna la ip y usando inet_ntoa de socket, podes resolver el DNS  ;)

Navegación

[0] Índice de Mensajes

Ir a la versión completa