Bonjour,
==============================================================
Bien que ce code n'est pas très utile :-)
Ce script peu probablement être utile pour d'autre raison.
Actuellement il permet la création et la mise à jour (à chaque fois qu'il est lancé) d une liste d'adresses MAC des routeurs 'wifi' avoisinants.
==============================================================
Le fonctionnement se résume à:
1/ L'ouverture du fichier contenant la liste d'@mac (ou création si il n existe pas)
2/ Lancement de la commande pour récuperer les informations sur les réseaux environnants(la sortie d affichage est redirigée vers un fichier)
3/ Traitement de ce fichier
4/ Suppression de ce fichier
5/ Ajout des @mac nouvellement trouvées
6/ Enregistrement du fichier mis à jour
================================================================
(le commentaire fournis dans le code est en langue anglaise)
================================================================
====ATTENTION=
A l'attention des utilisateur de Windows:
le script ne fonctionnera pas sous Windows car la commande
"iwlist" n existe pas.
solution rapide : telecharger et installer une version de linux :-)
Aux autres: penser à executer le script en 'superuser' pour pouvoir faire un 'scan' des réseaux wifi.
==============================================================
Source / Exemple :
#########################################################################
## Update a file with a list of mac adress from (wireless routers) # ## #
## (working on ubuntu with superuser right) #
## #
## command: 'sudo python macfisher.py' #
#########################################################################
## set import
import os,string
## set command line and filename output destination
command="iwlist wlan0 scan" # define command : scann wireless network
filename = "test" # define output file
command_line= command + ">" + filename # define command line
### open MAC adress archive file
print '\n'+ "Open old archive file ..."
archivemacfilename="maclist" # define archive name
try:
archivemacfile=open(archivemacfilename,"r") # open archive file
stringarchivemac=archivemacfile.read() # to read the content
archivemacfile.close() # close this file
except:
stringarchivemac=""
## run command line
print "Make a scan ..."
val = os.system(command_line) # run it !
## file processing
FILE = open(filename,"r") # open command output file
cp_new=0 # define the count for new adress
for line in FILE: # read the file
if line.find('Cell')>-1: # if the line contain a MAC adress
C = line.split()[-1] # split the line
if stringarchivemac.find(C)==-1: # if the adress is new
stringarchivemac=stringarchivemac+C+"\n" # add
cp_new=cp_new+1
FILE.close() # close file
os.remove(filename) # delete file
### update du fichier avec les nouvelles
if cp_new<>0: # if new adress(es) detected
print "Archive file were updated with " + str(cp_new) + " new address(es)."
archivemacfilename="maclist" # open archive mac adress file
archivemacfile=open(archivemacfilename,"w") # to write
archivemacfile.write(stringarchivemac) # the update
archivemacfile.close() # close the archive file
else:
print "No update for archive file."
print "\n"
Conclusion :
========================================================================
Il y a probablement de nombreuses améliorations à apporter tel que:
- récuper direct les lignes ou se situent les adresse mac plutôt que de lire tout le fichier.
- ajouter les ligne à la fin du fichier contenant la liste plutôt que de réecrire la liste complète des @mac à chaque lancement.
- ...
Bonne journée à vous :-)
Cdt.
========================================================================
Conseil:
Si vous aimez 'python', alors probablement 'Linux' aussi, ainsi si vous n'êtes pas obliger d'utiliser un système d exploitation payant n'hésitez pas à essayer le gratuit !!!
ex:
http://www.ubuntu-fr.org/telechargement
========================================================================
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.