Comment obtenir l'adresse MAC actuelle et la transmettre à une variable du terminal Linux


1

J'ai trouvé une commande d'un autre article sur Super User qui m'a aidé, mais je ne sais pas comment passer le résultat à une variable et l'imprimer.

C'est la commande que j'ai utilisée:

ip addr show $(awk 'NR==3{print $1}' /proc/net/wireless | tr -d :) | awk '/ether/{print $2}'

Mon script complet est:

#!/bin/bash

# Diconnect the network
nmcli d disconnect wlan0

# Down interface
ifconfig wlan0 down

# Randomize my mac address
macchanger -r wlan0

# Up interface
ifconfig wlan0 up

# Connect network again
nmcli d connect wlan0

# Get current mac generated by 'macchanger'
ip addr show $(awk 'NR==3{print $1}' /proc/net/wireless | tr -d :) | awk '/ether/{print $2}'

# Open the web page using current mac generated
xdg-open "http://webapplication.com/?mac=MY_MAC_ADDRES"

En regardant macchanger, il devrait déjà faire écho à l'adresse MAC définie.
Daniel B

Réponses:


1

Cela devrait trouver le MAC pour eth0. Vous devrez peut-être modifier cette interface ( eth0) pour qu'elle corresponde à vos besoins, mais cela devrait fonctionner.

DETECTED_MAC_ADDRESS=`ifconfig eth0 2>/dev/null|awk '/HWaddr/ {print $5}'`

Il me suffisait de le copier d'un de mes scripts :)
Steve

Cela fonctionnera-t-il réellement pour la tâche de l'affiche originale? Ils font référence à wlan0et votre commande est pour eth0? Je comprends le concept global fonctionne et joue , mais pas à 100% sûr que votre réponse est claire pour ceux qui ne saisissent pas pleinement ce que la différence entre wlan0, eth0et tel. Je viens de faire un montage pour clarifier l'aspect interface de tout cela.
JakeGould

@JakeGould C'est pourquoi j'ai fait le commentaire à propos de l'interface. Merci de clarifier.
Steve

0

Vous pouvez trouver l'adresse MAC de tous vos périphériques réseau via le /sys/devicessystème de fichiers.

Cela trouvera toutes les adresses mac des périphériques réseau sur le bus PCI. L'adresse MAC est stockée dans le fichier address.

sudo find /sys/devices -wholename */pci*/net/*/address -exec cat {} +

sortie:

00:XX:XX:XX:XX:83
00:XX:XX:XX:XX:82
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.