Extracting MAC address using Python

MAC address also known as physical address is the unique identifier that is assigned to the NIC (Network Interface Card) of the computer. NIC helps in connection of a computer with other computers in the network. MAC address is unique for all the NIC’s.

Uses of MAC address :

  • Useful in places where IP address change frequently. Helps network admin. to get information regarding network traffic.
  • Helps us to configure which computers can be connected to our computers. By this way we can filter potential spam/virus attacks.
  • Helps in uniquely identifying computers from other computers around the world.

MAC-Address

This article aims at extracting MAC address of computer using Python.

Method 1 : using mac module
To get the physical address of the device we use getmac module of Python.



>>>from getmac import get_mac_address as gma
>>>print(gma())
'3c:7e:94:8f:d0:34'

Method 2 : Using uuid.getnode()

getnode() can be used to extract the MAC address of the computer. This function is defined in uuid module.
The illustrated code given below shows how to generate a UUID for a given host, identified by its MAC address, using the uuid1() function.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python Program to compute
# MAC address of host
# using UUID module
  
import uuid
  
# printing the value of unique MAC
# address using uuid and getnode() function 
print (hex(uuid.getnode()))

chevron_right


Output :

0x163e990bdb

Drawback :

  • The visible drawback is that the output is not in the formatted form.

Method 3 : Using getnode() + format() [ for better formatting ]

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 code to print MAC
# in formatted way.
  
import uuid
  
# joins elements of getnode() after each 2 digits.
  
print ("The MAC address in formatted way is : ", end="")
print (':'.join(['{:02x}'.format((uuid.getnode() >> ele) & 0xff)
for ele in range(0,8*6,8)][::-1]))

chevron_right


Output :

The MAC address in formatted way is : 00:16:3e:99:0b:db

Drawback :

  • This code appears to be complex.

Method 4 : Using getnode() + findall() + re() [ for reducing complexity ]

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 code to print MAC
# in formatted way and easier
# to understand
  
import re, uuid
  
# joins elements of getnode() after each 2 digits.
# using regex expression
print ("The MAC address in formatted and less complex way is : ", end="")
print (':'.join(re.findall('..', '%012x' % uuid.getnode())))

chevron_right


Output :

The MAC address in formatted and less complex way is : 00:16:3e:99:0b:db

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : DivyaVishwakarma1

Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.