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,