Pêcheur d'adresse mac :-)

Contenu du snippet

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

========================================================================

A voir également

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.