elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Interfaz de red activa en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Interfaz de red activa en C  (Leído 1,813 veces)
soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
Interfaz de red activa en C
« en: 13 Octubre 2012, 10:58 am »

¡Buenas a todos!

Estoy haciendo un programa en C para linux al cual le voy a pasar por parametro una interfaz de red (ej.: eth0) y quiero comprobar que dicha interfaz de red esta activa y lista para enviar o recibir datos....

¿Como hago esta comprobacion?

Gracias, un saludo.


En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
soyloqbuskas

Desconectado Desconectado

Mensajes: 218


¡El conocimiento es de todos!


Ver Perfil
Re: Interfaz de red activa en C
« Respuesta #1 en: 14 Octubre 2012, 23:18 pm »

Bueno, creo que ya he dado con la respuesta....

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<sys/ioctl.h>
  4. #include<sys/types.h>
  5. #include<sys/socket.h>
  6. #include<unistd.h>
  7. #include <netinet/in.h>
  8. #include <arpa/inet.h>
  9. #include <net/if.h>
  10.  
  11. int main(int argc, char ** argv)
  12. {
  13.    int fd;
  14.    struct ifreq ifr;
  15.        int result=0;
  16.    char * iface ="";
  17.        iface= argv[1];
  18.  
  19.    fd = socket(AF_INET, SOCK_DGRAM, 0);
  20.  
  21.    ifr.ifr_addr.sa_family = AF_INET;
  22.  
  23.    strncpy(ifr.ifr_name , iface , IFNAMSIZ-1);
  24.  
  25.    if(ioctl(fd, SIOCGIFADDR, &ifr)==0){
  26.  
  27.             printf("Interfaz: %s -IP: %s\n" , iface , inet_ntoa(( (struct sockaddr_in *)&ifr.ifr_addr )->sin_addr) );
  28.    }
  29.    else printf("La interfaz no esta lista\n");
  30.    close(fd);
  31.    return 0;
  32. }
  33.  

Un saludo.


En línea

"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no reconose grabadora LG y no activa DMA
Software
oflag 0 1,862 Último mensaje 12 Octubre 2004, 12:21 pm
por oflag
Capturar Pantalla activa en Xp
Programación Visual Basic
Bourne Ultimatum 3 5,460 Último mensaje 30 Junio 2005, 05:36 am
por NekroByte
Ventana activa
Programación Visual Basic
Meg 2 2,202 Último mensaje 9 Junio 2006, 01:26 am
por Meg
Como mantener una ventana no activa, activa, al cambiar de ventana
Programación General
traviatØ 0 3,962 Último mensaje 16 Junio 2011, 02:55 am
por traviatØ
Saber cual es la aplicación activa y volver activa una aplicación
Programación Visual Basic
seba64 1 2,543 Último mensaje 2 Diciembre 2011, 22:19 pm
por raul338
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines