Código de C/Visual C - WIFI

Imágen de perfil

WIFIgráfica de visualizaciones


C/Visual C

Actualizado el 17 de Junio del 2023 por Hilario (122 códigos) (Publicado el 15 de Junio del 2023)
371 visualizaciones desde el 15 de Junio del 2023
Códico que analiza entorno wifi, de interfaces de red encontradas, llamando a
la estructura struct ifconf.

Compilación bajo consola Linux.
gcc -Werror wifi.c -o wifi

Ejecución bajo consola linux.
./wifi

Ejemplo de salida tras la ejecución.
Interfaces de red encontradas: 3
Interfaz 1: wlp1s0
Dirección IP: 127.0.0.1
Interfaz 2: wlp1s0
Dirección IP: 192.168.0.29
Interfaz 3: wlp1s0
Dirección IP: 192.168.0.26

Requerimientos

SISTENA OPERATIVO.
Ubuntu 20.04.6 LTS.
Utilizado IDE sublime text.
Ejecutado en consola Linux.

1.0

Publicado el 15 de Junio del 2023gráfica de visualizaciones de la versión: 1.0
372 visualizaciones desde el 15 de Junio del 2023
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
 
#define MAX_INTERFACES 10
#define MAX_BUFFER_SIZE 1024
 
int main() {
    int sock;
    struct ifconf ifconf;
    struct ifreq ifreq[MAX_INTERFACES];
    char buffer[MAX_BUFFER_SIZE];
    int interfaceCount, i;
 
    // Crear un socket de dominio AF_INET para comunicación de red
    sock = socket(AF_INET, SOCK_DGRAM, 0);
    if (sock == -1) {
        perror("Error al crear el socket");
        exit(1);
    }
 
    ifconf.ifc_buf = (char *)ifreq;
    ifconf.ifc_len = sizeof(ifreq);
 
    // Obtener la lista de interfaces de red
    if (ioctl(sock, SIOCGIFCONF, &ifconf) == -1) {
        perror("Error al obtener la lista de interfaces de red");
        close(sock);
        exit(1);
    }
 
    // Calcular el número de interfaces de red encontradas
    interfaceCount = ifconf.ifc_len / sizeof(struct ifreq);
 
    printf("Interfaces de red encontradas: %d\n", interfaceCount);
 
    // Iterar sobre las interfaces y obtener información de cada una
    for (i = 0; i < interfaceCount; i++) {
        struct sockaddr_in *address;
 
        address = (struct sockaddr_in *)&ifreq[i].ifr_addr;
 
        // Obtener nombre de la interfaz
        if (ioctl(sock, SIOCGIFNAME, &ifreq[i]) != -1) {
            printf("Interfaz %d: %s\n", i+1, ifreq[i].ifr_name);
 
            // Obtener dirección IP de la interfaz
            printf("Dirección IP: %s\n", inet_ntoa(address->sin_addr));
        } else {
            perror("Error al obtener el nombre de la interfaz");
        }
    }
 
    // Cerrar el socket
    close(sock);
 
    return 0;
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7378