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"
Renan Coelho
la source
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}'`
Steve
la source
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
moineau
la source