Programme de configurations d'une carte reseau

Créer un programme qui permet de modifier les informations d'une carte reseau

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour !

c’est un peut idiot de vouloir réinventer la roue mais je pense que sa aide dans le cadre de l'apprentissage :D

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

Sorry for grammar and spelling mistakes!

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte