GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir l'adresse MAC

Python 2.5 inclut une implémentation uuid qui (dans au moins une version) a besoin de l'adresse mac. Vous pouvez facilement importer la fonction de recherche mac dans votre propre code :

from uuid import getnode as get_mac
mac = get_mac()

La valeur de retour est l'adresse mac sous forme d'entier de 48 bits.


La solution en python pur pour ce problème sous Linux pour obtenir le MAC pour une interface locale spécifique, initialement publiée sous forme de commentaire par vishnubob et améliorée par Ben Mackey dans cette recette activestate

#!/usr/bin/python

import fcntl, socket, struct

def getHwAddr(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', ifname[:15]))
    return ':'.join(['%02x' % ord(char) for char in info[18:24]])

print getHwAddr('eth0')

Voici le code compatible Python 3 :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import fcntl
import socket
import struct


def getHwAddr(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', bytes(ifname, 'utf-8')[:15]))
    return ':'.join('%02x' % b for b in info[18:24])


def main():
    print(getHwAddr('enp0s8'))


if __name__ == "__main__":
    main()

Linux
  1. Comment changer l'adresse MAC sur CentOS 8

  2. Trouver l'adresse MAC dans Ubuntu 21.10

  3. Objectif de l'adresse sendto pour le socket C raw ?

  4. Imprimer l'adresse mac dans le fichier

  5. Remplacer l'adresse MAC par UUID

Comment trouver l'adresse MAC dans Ubuntu

Comment changer/usurper une adresse MAC dans Ubuntu

Comment changer l'adresse MAC du réseau sous Linux

Comment changer l'adresse MAC sous Linux

Résoudre l'adresse Mac à partir de l'adresse IP sous Linux ?

Résolution de l'adresse MAC à partir de l'adresse IP sous Linux