Bonjour !
c’est un peut idiot de vouloir réinventer la roue mais je pense que sa aide dans le cadre de l'apprentissage
Comme indiqué dans le titre je souhaite crée un programme en python3 qui peut modifier les informations d'une carte réseau (IP, MAC…). Je débute encore en programmation avec python et je maîtrise pas trop les modules dont j'aurais besoin Hormis les modules os, socket et sys si je ne me suis pas tromper
un petit déroulement de l’application pour la première partie
au choix
-
l'utilisateur doit pouvoir changer l'adresse mac d'une interface de façon aléatoire (générer une adresse mac aléatoire)
-
l'utilisateur doit pouvoir changer l'adresse mac d'une interface dans une ordre (adresse qui suit directement celle courante) ici il faut faire un compteur de mac je croix
-
l'utilisateur doit pouvoir changer l'adresse mac d'une interface en la tapant dans un champ
j'ai déjà réaliser un petit boue en bash/Shell mais ces pas le but
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #!/bin/bash if [ "$EUID" -ne 0 ]; then echo "Vous devez exécuter ce programme en tant que root" notify-send --icon="important" "Vous devez exécuter ce programme en tant que root" --expire-time=3000 exit else #get all interfaces informations arp_a=`arp -a` #delimiter to split arp_a space=' ' #splitting arp_a and set into array array_arp_a_elements=(${arp_a//space/}) #real hardware mac address #HWaddress="${array_arp_a_elements[3]}" #interface Iface="${array_arp_a_elements[6]}" #generate a virtual mac address mac_byte=$(cat /dev/urandom | tr -dc 'A-F0-9' | fold -w 2 | head -n 5) array_byte=(${mac_byte//space/}) vmac_first_byte="58:" vmac_others_byte=$(IFS=":"; echo "${array_byte[*]}") vmac=$vmac_first_byte$vmac_others_byte #function to check if network interface is up function ifup { if [[ ! -d /sys/class/net/${1} ]]; then printf 'Aucune interface de ce type: %s\n' "$1" >&2 return 1 else [[ $(</sys/class/net/${1}/operstate) == up ]] fi } #check if $Iface is up while ifup $Iface; do #disable an interface sleep 1 ifconfig $Iface down #Change network interface mac address into a virtual mac sleep 3 nohup ifconfig $Iface hw ether $vmac notify-send --icon="info" --urgency="low" "Processus en cours..." --expire-time=4900 sleep 5 done notify-send --icon="sunny" --urgency="normal" "job done!" --expire-time=7000 #enable an interface ifconfig $Iface up fi |
Jais ici utiliser quelques snippets pour y arriver mais cela ne marche pas pour toutes les cartes et ceci ne marche que si une seule carte réseau est connectée