• Domingo 22 de Diciembre de 2024, 14:25

Autor Tema:  Funcion Para Saber La Ip  (Leído 1498 veces)

odp77

  • Miembro activo
  • **
  • Mensajes: 25
    • Ver Perfil
Funcion Para Saber La Ip
« en: Sábado 20 de Mayo de 2006, 02:46 »
0
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 -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Funcion Para Saber La Ip
« Respuesta #1 en: Sábado 20 de Mayo de 2006, 03:14 »
0
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:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

Last Dragon

  • Miembro MUY activo
  • ***
  • Mensajes: 109
    • Ver Perfil
    • http://www.lastdragon.net
Re: Funcion Para Saber La Ip
« Respuesta #2 en: Martes 27 de Junio de 2006, 00:22 »
0
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,
Servidor Personal de Last Dragon



www.lastdragon.net

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Funcion Para Saber La Ip
« Respuesta #3 en: Martes 27 de Junio de 2006, 01:56 »
0
Buen punto.
Mira hay un comando que se llama netstat, te retorna la ip y usando inet_ntoa de socket, podes resolver el DNS  ;)
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.