Fonction grep sur scan WIFI - Shell/Batch - Programmation
Marsh Posté le 09-02-2014 à 11:39:25
 
 !
Tout d'abord, pour extraire les lignes contenant une certaine chaîne de caractères, le grep se suffit à lui-même. Tu peux ainsi écrire ton programme de la manière suivante :
Code :
  | 
Ensuite, pour le grep, je ne connais pas le résultat de la commande iwlist ![]()
Enfin, grep permet de chercher ce que tu veux : la syntaxe est la suivante :
Code :
  | 
![]()
Edit : Tout dépend aussi de ce que tu veux faire : la commande grep va te donner la ligne complète si le mot recherché est présent. À mon avis, tu ne veux garder que les noms des ESSID. Dans ce cas, la commande awk me semble plus appropiée.
Marsh Posté le 09-02-2014 à 20:21:05
Salut Soileh, 
 
Tout d'abord merci pour ton feedback 
 
Et donc je reviens pour dire que sur base des informations que tu m'as donné et que j'ai pu aussi glaner ailleurs, j'ai pondu ce script qui marche: 
Code :
  | 
 
 
Maintenant pour pouvoir le tester je copie un extrait de la commande iwlist (à sauvegarder dans un un fichier Wifi_List.txt): 
 
 
          Cell 01 - Address: 00:02:CF:61:BC:45 
                    Channel:6 
                    Frequency:2.437 GHz (Channel 6) 
                    Quality=44/70  Signal level=-66 dBm   
                    Encryption key:on 
                    ESSID:"H4CKm3" 
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 22 Mb/s 
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s 
                              36 Mb/s; 48 Mb/s; 54 Mb/s 
                    Mode:Master 
                    Extra:tsf=0000012e8070b40a 
                    Extra: Last beacon: 2568ms ago 
                    IE: Unknown: 00074C415253534F4E 
                    IE: Unknown: 010582848B962C 
                    IE: Unknown: 030106 
                    IE: Unknown: 2A0103 
                    IE: Unknown: 32080C1218243048606C 
                    IE: WPA Version 1 
                        Group Cipher : TKIP 
                        Pairwise Ciphers (1) : TKIP 
                        Authentication Suites (1) : PSK 
                    IE: Unknown: DD0408002800 
          Cell 02 - Address: 10:FE:ED:E6:5D:BC 
                    Channel:6 
                    Frequency:2.437 GHz (Channel 6) 
                    Quality=36/70  Signal level=-74 dBm   
                    Encryption key:on 
                    ESSID:"Honeypot2" 
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 
                              9 Mb/s; 12 Mb/s; 18 Mb/s 
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s 
                    Mode:Master 
                    Extra:tsf=000000239da9b6cb 
                    Extra: Last beacon: 2284ms ago 
                    IE: Unknown: 0009486F6E6579706F7432 
                    IE: Unknown: 010882848B960C121824 
                    IE: Unknown: 030106 
                    IE: Unknown: 2A0102 
                    IE: Unknown: 32043048606C 
                    IE: Unknown: 2D1AEF111BFFFFFF00000000000000000000000000000406E6E70D00 
                    IE: Unknown: 331AEF111BFFFFFF00000000000000000000000000000406E6E70D00 
                    IE: Unknown: 3D1606050500000000000000000000000000000000000000 
                    IE: Unknown: 341606050500000000000000000000000000000000000000 
                    IE: Unknown: DD180050F2020101850003A4000027A4000042435E0062322F00 
                    IE: Unknown: DD0900037F01010000FF7F 
                    IE: IEEE 802.11i/WPA2 Version 1 
                        Group Cipher : CCMP 
                        Pairwise Ciphers (1) : CCMP 
                        Authentication Suites (1) : PSK 
                    IE: WPA Version 1 
                        Group Cipher : CCMP 
                        Pairwise Ciphers (1) : CCMP 
                        Authentication Suites (1) : PSK 
          Cell 03 - Address: 00:9C:02:0F:9E:3A 
                    Channel:11 
                    Frequency:2.462 GHz (Channel 11) 
                    Quality=70/70  Signal level=-34 dBm   
                    Encryption key:on 
                    ESSID:"Toto" 
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s 
                              11 Mb/s; 12 Mb/s; 18 Mb/s 
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s 
                    Mode:Master 
                    Extra:tsf=0000017d54dd8daf 
                    Extra: Last beacon: 432ms ago 
                    IE: Unknown: 001B48502D5072696E742D33412D50686F746F736D6172742036353230 
                    IE: Unknown: 010802040B0C12161824 
                    IE: Unknown: 03010B 
                    IE: Unknown: 2A0100 
                    IE: Unknown: 2D1A0055010200050039010400580200007B01040058020000330102 
                    IE: IEEE 802.11i/WPA2 Version 1 
                        Group Cipher : CCMP 
                        Pairwise Ciphers (1) : CCMP 
                        Authentication Suites (1) : PSK 
                    IE: Unknown: 32043048606C 
                    IE: Unknown: 3D160B000100000000000000000000000000000000000000 
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00 
          Cell 04 - Address: 00:25:9C:D7:8E:07 
                    Channel:11 
                    Frequency:2.462 GHz (Channel 11) 
                    Quality=61/70  Signal level=-49 dBm   
                    Encryption key:off 
                    ESSID:"linksys" 
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 
                              24 Mb/s; 36 Mb/s; 54 Mb/s 
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s 
                    Mode:Master 
                    Extra:tsf=00000004527fbb01 
                    Extra: Last beacon: 468ms ago 
                    IE: Unknown: 00076C696E6B737973 
                    IE: Unknown: 010882848B962430486C 
                    IE: Unknown: 03010B 
                    IE: Unknown: 2A0104 
                    IE: Unknown: 2F0104 
                    IE: Unknown: 32040C121860 
                    IE: Unknown: DD06001018020004 
          Cell 05 - Address: 70:54:D2:56:FB:19 
                    Channel:11 
                    Frequency:2.462 GHz (Channel 11) 
                    Quality=68/70  Signal level=-42 dBm   
                    Encryption key:on 
                    ESSID:"SecureGuest" 
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 
                              24 Mb/s; 36 Mb/s; 54 Mb/s 
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s 
                    Mode:Master 
                    Extra:tsf=0000000da1956a6b 
                    Extra: Last beacon: 816ms ago 
                    IE: Unknown: 000B5365637572654775657374 
                    IE: Unknown: 010882848B962430486C 
                    IE: Unknown: 03010B 
                    IE: Unknown: 2A0100 
                    IE: Unknown: 2F0100 
                    IE: IEEE 802.11i/WPA2 Version 1 
                        Group Cipher : CCMP 
                        Pairwise Ciphers (1) : CCMP 
                        Authentication Suites (1) : PSK 
                    IE: Unknown: 32040C121860 
                    IE: Unknown: 2D1AFC181BFFFF000000000000000000000000000000000000000000 
                    IE: Unknown: 3D160B080400000000000000000000000000000000000000 
                    IE: Unknown: DD090010180201F02C0000 
                    IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00 
 
Maintenant à tout hasard que pensez vous du script que j'ai écris? 
 
Nouvel étape maintenant, essayer la même chose mais avec sed et awk... 
 
@+
Marsh Posté le 10-02-2014 à 15:31:04
En fait je trouve ton script très "bizarre". Tu as du texte en mémoire, et au lieu de le traiter directement, tu l'écris dans un fichier, que tu vas ensuite remonter en mémoire pour le parser, puis que tu vas détruire. 
 
Pourquoi ne traites-tu pas directement les données en mémoire ? 
Par exemple : 
Code :
  | 
 
 
Pareil, tester le code retour d'un grep pour voir si on doit faire l'action ou pas, je n'aime pas ça, car je ne trouve pas ca lisible, et en plus ca fait plein de lignes de code 
 En ce qui me concerne, je préfère le "grep -c" : 
 
Code :
  | 
 
 
Enfin, comme suggéré plus haut, si tu souhaites réagencer les données ou extraire des morceaux de lignes, le awk sera plus adapté, et te permettra de te passer complètement de la boucle.
Marsh Posté le 12-02-2014 à 22:00:27
Salut nukolau, 
 
Merci pour le feedback, j'ai alors réécris le script sur base de tes conseils: 
Code :
  | 
 
 
Merci encore pour vos retours, 
@+
Marsh Posté le 09-02-2014 à 02:30:49
Salut tout le monde,
En m'amusant avec le WIFI, je me suis retrouvé à vouloir sauvegarder la sortie de la commande iwlist dans un fichier pour faire quelques traitements dessus, de la façon suivante: (wlan0 étant le nom de mon interface)
Maintenant je souhaiterai extraire les lignes ou apparaissent le terme ESSID, et pour ça j'ai écris le code suivant:
Je suis sur qu'on peut faire plus propre et efficace, donc auriez vous de suggestions?
Et d'ailleurs pourquoi cette syntaxe ne marche pas:
Enfin, est ce que qqun pourrait me dire si on peu chercher une chaine de caractere ou l'autre via un seul appel à grep, genre:
Merci d'avance pour toute aide,