Auteur Sujet: Bash : Isoler une information (iwconfig)  (Lu 2678 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne WK

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 188
  • +19/-1
Bash : Isoler une information (iwconfig)
« le: 16 juillet 2017 à 05:27:12 »
Salut tout le monde  ;D

J'ai un petit problème en bash :

lorsque je fais iwconfig je recois ceci :

lo        no wireless extensions.

wlan0     IEEE 802.11abgn  ESSID:"XXXXX" 
          Mode:Managed  Frequency:2.412 GHz  Access Point: 68:15:90:14:25:40   
          Bit Rate=104 Mb/s   Tx-Power=15 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=[b]45[/b]/70  Signal level=-65 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:291   Missed beacon:0

eth0      no wireless extensions.

en gros mon but est d'isoler le signal level. Donc je fais ceci :

iwconfig wlan0 | grep Quality
qui me donne ca

Link Quality=54/70  Signal level=-56 dBm
Et ensuite je cale. Si quelqu'un sait comment je pourrai "isoler" simplement le 56..
Une commande qui m'aurait retourné juste le
56qui correspond au Signal Level.

Merci d'avance  ;D

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre Elite
  • *****
  • Messages: 3794
  • +264/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : Bash : Isoler une information (iwconfig)
« Réponse #1 le: 16 juillet 2017 à 08:26:52 »
avec awk tu devrais pouvoir.

Hors ligne _john_doe

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 606
  • +36/-5
Re : Bash : Isoler une information (iwconfig)
« Réponse #2 le: 16 juillet 2017 à 11:49:58 »
Tu peux jouer aussi avec le cut
Dans l'exemple suivant j'utilise ETH0 car j'attends ma nouvelle carte WIFI que j'ai commandé :-)

root@kali:~# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.23  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::52c9:b7c7:fb55:854c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:41:15:6f  txqueuelen 1000  (Ethernet)
        RX packets 26172  bytes 35675983 (34.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4919  bytes 454993 (444.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  base 0x2000 
Supposons que je cherche à fitrer le 3eme octet de l'adresse MAC de ma carte :

root@kali:~# ifconfig eth0 | grep ether | cut -c21-22
29
Dans cet exemple je filtre sur ETHER (tu filtreras sur Quality) puis je demande qu'il me recupere les caracteres qui se situent en 21 et 22° position de la chaine filtrée.
Donc pour toi ca devrait etre un truc comme ca :
root@kali:~# ifconfig wlan0 | grep Quality | cut -c50-51
Et version Coyotus ca devrait etre un truc comme ca : (je vais taper directement dans le fichier wireless ou se trouve stocké le signal)
root@kali:~#awk 'NR==3 {print $3}' /proc/net/wireless
Peux pas tester, pas de WIFI ;-)




« Modifié: 16 juillet 2017 à 12:58:22 par _john_doe »

Hors ligne kcdtv

  • Contributeur de Kali-linux.fr
  • Membre VIP
  • *****
  • Messages: 640
  • +60/-3
    • crack-wifi.com
Re : Bash : Isoler une information (iwconfig)
« Réponse #3 le: 16 juillet 2017 à 12:38:44 »
Avec awk:
 Le truc c'est trouver le bon séparateur.
Dans ce cas je dirais le signe =
Tu cherches donc à garder le 3ème champ si on prend "égal" comme séparateur
Citer
Link Quality=35/70  Signal level=-75 dBm
On peut utiliser l'option -F (Field )
-F sc --field-separator=sctu as une ligne de syntaxe en exemple dans l'aide
gawk -F: '{ print $1 }' /etc/passwdDans ce cas ce on imprime le premier champ, '{ print $1 }', en utilisant le séparateur :
Si le fichier /etc/passwd à cette gueule 
user:pass
user:pass
user:pass
Tu aurais une liste avec seulement les noms des users
Adapter à ton cas c'est change le séparateur : par = et changer le numéro 1 par 3
sudo iwconfig | grep "Quality" | awk -F '='  '{ print $3 }'kcdtv:~$ sudo iwconfig | grep Quality | awk -F=  '{ print $3 }'
eth0      no wireless extensions.

lo        no wireless extensions.

-81 dBm
Juste au passage:
tu peux le faire aussi ainsi avec cut
-d, --delimiter=DELIM   usa DELIM en vez de caracteres de tabulación
                          para delimitar los campos
  -f, --fields=LISTA      selecciona solamente estos campos; también muestra
                            cualquier línea que no tenga un carácter
                            delimitador, a menos que se especifique la
                            opción -s
-d pour le délimiteur et -f pour le field
sudo iwconfig | grep Quality | cut -d =  -f3La syntaxe de Cut est plus simple  mais c'est moins puissant que awk lorsque on utilise l'option délimiteur + champ (en particulier pour la gestion du séparateur "espace")


Hors ligne WK

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 188
  • +19/-1
Re : Bash : Isoler une information (iwconfig)
« Réponse #4 le: 16 juillet 2017 à 14:56:18 »
WOW !  :D
Merci les gars, j'adore le bash bordel  :o

Hors ligne Koala

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 322
  • +18/-0
Re : Bash : Isoler une information (iwconfig)
« Réponse #5 le: 17 juillet 2017 à 09:45:21 »
On n'y pense peu mais c'est relativement puissant  8)