Python 2.5 menyertakan implementasi uuid yang (setidaknya dalam satu versi) membutuhkan alamat mac. Anda dapat mengimpor fungsi pencarian mac ke dalam kode Anda sendiri dengan mudah:
from uuid import getnode as get_mac
mac = get_mac()
Nilai yang dikembalikan adalah alamat mac sebagai bilangan bulat 48 bit.
Solusi python murni untuk masalah ini di Linux untuk mendapatkan MAC untuk antarmuka lokal tertentu, awalnya diposting sebagai komentar oleh vishnubob dan diperbaiki oleh Ben Mackey dalam resep keadaan aktif ini
#!/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')
Ini adalah kode yang kompatibel dengan 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()
Bagaimana saya bisa mematikan proses dengan nama, bukan PID?
Gumpalan peka huruf besar-kecil pada zsh/bash