identification unique d'un PC
Posté : ven. 9 août 2024 23:32
Bonjour,
Dans le cadre d'un projet de sécurité écrit en python, je dois identifier de manière unique chaque PC.
Je connais les méthodes par l'adresse mac des PC et le n° de série du processeur.
Je ne veux pas utiliser l'identifiant de disque car il peut changer dans le temps.
Pour l'adresse mac pas de soucis. La commande
fournit l'adresse mac de la carte réseau ... active. Et donc, si on change de réseau (de filaire à wifi ou l'inverse) on est marron. Ah oui, je ne veux mettre le nom de la carte réseau en dur (faut que mon programme soit portable).
Pour le n° de série c'est mieux. la commande
fournit le n° de série unique ... sauf qu'il faut avoir des droits d'administrateur, et je ne veux pas élever cette commande aux compte non privilégiés comme on le fait de cette manière
Donc je me dis que je vais revenir à l'adresse mac et je vais prendre non pas l'interface active mais la première opérationnelle de la liste par la commande
Mais suis-je sûr de ne pas prendre la lien LOOPBACK ? À priori non puisque j'ai mis "link/ether" mais......
À vos plus belles plumes !
PS: chez moi un ip address
Dans le cadre d'un projet de sécurité écrit en python, je dois identifier de manière unique chaque PC.
Je connais les méthodes par l'adresse mac des PC et le n° de série du processeur.
Je ne veux pas utiliser l'identifiant de disque car il peut changer dans le temps.
Pour l'adresse mac pas de soucis. La commande
Code : Tout sélectionner
cat /sys/class/net/$(ip route show default | awk '/default/ {print $5}')/addressPour le n° de série c'est mieux. la commande
Code : Tout sélectionner
dmidecode | grep -w UUID | sed "s/^.UUID\: //gCode : Tout sélectionner
sudo chmod +s /usr/sbin/dmidecode
Code : Tout sélectionner
ip address | awk '/link\/ether/ {print $2}' >> tmp.log && head -n 1 tmp.log && rm tmp.logÀ vos plus belles plumes !
PS: chez moi un ip address
Code : Tout sélectionner
ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether c8:5a:cf:a6:26:22 brd ff:ff:ff:ff:ff:ff
altname enp2s0
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 14:13:33:82:81:9d brd ff:ff:ff:ff:ff:ff
altname wlp3s0
inet 192.168.1.80/24 brd 192.168.1.255 scope global dynamic noprefixroute wlo1
valid_lft 43041sec preferred_lft 43041sec
inet6 2a01:e0a:13a:8aa0:ca22:1b0a:77cd:7739/64 scope global temporary dynamic
valid_lft 86230sec preferred_lft 85181sec
inet6 2a01:e0a:13a:8aa0:9347:4291:d27f:838a/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86230sec preferred_lft 86230sec
inet6 fe80::e198:3a53:4ed:5b54/64 scope link noprefixroute
valid_lft forever preferred_lft forever