• Publicidad

Detectar redes WIFI

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Detectar redes WIFI

Notapor BigBear » 2014-09-22 07:58 @374

Hola, quería preguntar cómo puedo detectar todos los wifi disponibles usando Perl, algo así como hacen las tabletas o los smartphones cuando te muestran la lista de los wifi disponibles con el nombre y todo eso. ¿Ya existe algún módulo para ayudarnos con eso?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Detectar redes WIFI

Notapor explorer » 2014-09-22 08:24 @392

Sólo tienes que entrar en CPAN o MetaCPAN, y en la caja de búsqueda pones lo que quieres buscar.

Yo he puesto wifi y me ha salido, por ejemplo, Win32::Wlan:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. require Win32::Wlan;
  2. my $wlan = Win32::Wlan->new;
  3. if ($wlan->available) {
  4.     print "Conectado to ", $wlan->connection->{profile_name},"\n";
  5.     print "Veo las siguientes redes\n";
  6.     for ($wlan->visible_networks) {
  7.         printf "%s\t-%d dbm\n", $_->{name}, $_->{signal_quality};
  8.     };
  9.  
  10. } else {
  11.     print "No se ha detectado Wlan (o está desactivado)\n";
  12. };
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

En Linux, no siquiera necesitas un módulo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -E 'say join "\n", qx(iwlist wlan0 scanning) =~ /ESSID:(.+?)$/msg;'
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Detectar redes WIFI

Notapor BigBear » 2014-09-22 10:53 @495

Gracias por la ayuda, explorer. Te quería preguntar qué comando uso para realizar una conexión con el WiFi de mi casa con contraseña y comprobar si se conectó o no. Me fijé en los datos de mi conexión desde mi tableta y dice que mi WiFi tiene seguridad WPA PSK. ¿Qué tendría que hacer y qué necesito para hacerlo?

Edición:

Mira, encontré el siguiente código en Ruby pero no sé si funciona para el WiFi de mi casa. Pide los siguientes parámetros:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
 -c     --connect SSID {Hexkey|s:asciikey}    Connect to an access point    
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using ruby Syntax Highlighting
  1.     def connect essid, key = nil
  2.          if `sudo ifconfig wlan0 up` != ''
  3.              abort("Please run the script using sudo or as root")
  4.          end
  5.  
  6.         unless key
  7.             puts "Connecting to #{essid}"
  8.             if `sudo iwconfig #{@interface} essid #{essid}` == ''
  9.                 puts "Connected to #{essid}"
  10.             else
  11.                 abort("Could not connect")
  12.             end
  13.         else
  14.             puts "Connecting to #{essid} with WEP encryption"
  15.             if `sudo iwconfig #{@interface} essid #{essid} key #{key}` == ''
  16.                 puts "Connected to #{essid}"
  17.             else
  18.                     abort("Could not connect")
  19.             end
  20.         end
  21.  
  22.         `sudo #{DHCPCLIENT} -q -n #{@interface}`
  23.         puts "#{DHCPCLIENT.to_s.capitalize} started."
  24.     end
  25.  
  26.     def disconnect
  27.         "Disconnecting #{@interface}"
  28.         if `sudo iwconfig #{@interface} essid off` != ''
  29.             "Disconnect failed! Try running as root"
  30.         end
  31.     end
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

¿Cómo hago con el WiFi de mi casa, tengo que codificar la contraseña o algo?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Detectar redes WIFI

Notapor BigBear » 2014-10-07 16:58 @749

Tengo un problema con todos los comandos en los que uso mi interfaz inalámbrico. El problema es que no me reconoce ni detecta ninguno. Intenté con todos los comandos posibles que encontré en Google y no me encuentra nada con los comandos encontrados. Hasta tu comando no me devuelve nada. Intenté con ath0, wlan0 y otro que no me acuerdo el nombre en este momento.

Tu comando me devuelve :

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
lo        Interface doesn't support scanning.

eth0      Interface doesn't support scanning.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


También probé con :

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
ifconfig eth0 up

iwlist eth0 s
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


También revisé y parece estar todo instalado. Dice que eth0 está activado pero no escanea.

¿Cuál sera el problema ?
Última edición por explorer el 2014-10-07 17:55 @788, editado 1 vez en total
Razón: interface => interfaz; Intente => Intenté; encontre => encontré; Tambien => También; probe => probé; revise => revisé; esta => está; scanea => escanea; cual => Cuál; sera => será
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Detectar redes WIFI

Notapor explorer » 2014-10-07 18:26 @810

eth0 está reservado para las conexiones alámbricas. Su nombre deriva de cuando existían las redes Ethernet.

Para las redes inalámbricas, lo normal es que el dispositivo se llame wlan0, wlan1, etc.

Una forma de ver el nombre del dispositivo es mirando la salida del comando dmesg:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
[ 5391.785890] wlan0: authenticate with 4c:ed:de:35:4c:dd
[ 5391.797262] wlan0: send auth to 4c:ed:de:35:4c:dd (try 1/3)
[ 5391.798745] wlan0: authenticated
[ 5391.800149] wlan0: associate with 4c:ed:de:35:4c:dd (try 1/3)
[ 5391.808165] wlan0: RX AssocResp from 4c:ed:de:35:4c:dd (capab=0x411 status=0 aid=1)
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
o consultando la salida de /proc/net/dev
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
  eth0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
    lo:  468800    3935    0    0    0     0          0         0   468800    3935    0    0    0     0       0          0
 wlan0: 82154782   75550    0    0    0     0          0         0  7586877   57471    0    0    0     0       0          0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
o, si existe, la de /proc/net/wireless
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
 wlan0: 0000   52.  -58.  -256        0      0      0      0     12        0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Así que primero hay que saber el nombre del dispositivo que ha reconocido el sistema. Y si no sale ninguno, es que quizás el sistema no ha cargado el módulo del kernel apropiado para hacerlo (algo así como un driver (controlador)). Esos módulos se indican en /etc/modules o /etc/modprobe.d/, pero bueno, lo normal es que el sistema lo reconociese en el momento de la instalación o desde el panel de control, y se encargase él mismo de actualizar esos archivos.

Una vez que sabemos qué nombre de interfaz es, pues el resto es usar el iwconfig (atento a la 'w' del nombre), en donde aparecen todos los dispositivos de red, y si son inalámbricos o no:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
eth0      no wireless extensions.

lo        no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:"Jazztel_4C"  
          Mode:Managed  Frequency:2.427 GHz  Access Point: 4D:ED:DE:35:4C:DD  
          Bit Rate=54 Mb/s   Tx-Power=20 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=52/70  Signal level=-58 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:13   Missed beacon:0
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Es con ese con el que puedes controlar el levantamiento de la conexión a un cierto ESSID.

P.D.: también puedes probar iwconfig desde el principio. Más información en la página de manual de iwconfig (man iwconfig).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Detectar redes WIFI

Notapor BigBear » 2014-10-07 19:13 @842

explorer: mañana voy a actualizar mi Ubuntu 10.04 al 14 actualizando desde una opción cómoda que me da el sistema para probar si es un problema de la versión vieja porque ya lo intenté todo y nada. ¿Perderé los datos guardados en mi Ubuntu? ¿Hará algo raro al disco de seven que está aparte?
Última edición por explorer el 2014-10-08 04:00 @208, editado 1 vez en total
Razón: opcion => opción; comoda => cómoda; version => versión; intente => intenté; perdere => perderé; hara => hará; esta => está
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Detectar redes WIFI

Notapor explorer » 2014-10-08 04:05 @212

En toda actualización de un sistema siempre se pierden los datos de la configuración del sistema anterior.

Y de los datos del usuario (la carpeta /home) se "puede" perder si en la actualización no le decimos que no formatee las particiones. E incluso así, aunque le digas que no formatee esa partición y que solo la use como /home, podría fallar e inicializarla, con lo que puedes perderlo (esto me pasó con Linux Mint, pero nunca con OpenSuSE).

Así que... la regla básica es: SIEMPRE hacer copia de seguridad de todo.

Lo que se suele hacer es instalar el nuevo sistema operativo en un nuevo disco, y cuando compruebas que todo está bien, vas pasando la información del disco viejo al nuevo, o mantienes el disco viejo en el sistema.

En fin, hay muchas opciones.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Detectar redes WIFI

Notapor BigBear » 2014-10-08 10:52 @494

Acabo de instalar en una máquina virtual un Kali Linux y Wifislax, y lo mismo: no encuentra nada y dicen que eth0 y otro más no aceptan escaneos. Ahora pruebo actualizando Ubuntu y te cuento...
Última edición por explorer el 2014-10-08 11:26 @518, editado 1 vez en total
Razón: maquina => máquina; mas => más; scaneos => escaneos;
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Detectar redes WIFI

Notapor BigBear » 2014-10-09 18:20 @805

No hubo forma, explorer, ni en los tres sistemas operativos ni en el Ubuntu 14.04 hizo andar este tema. Al parecer ya es problema de mi computadora en sí.
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Detectar redes WIFI

Notapor explorer » 2014-10-09 18:34 @815

¿Cuál es la salida del comando iwconfig?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados