Where does ifconfig obtain the MAC address from in Linux?

  • Thread starter Thread starter j777
  • Start date Start date
  • Tags Tags
    Linux Mac
Click For Summary
To read the MAC address of a Linux system directly, it is noted that the information is sourced from the kernel, specifically accessible through the /proc filesystem. A method discussed involves using socket programming in Python, where a raw socket is created and bound to a network interface, such as "eth0", to retrieve the MAC address. This approach is highlighted as effective for obtaining the MAC address without relying on commands like arp or ifconfig. The conversation also references an example code snippet that demonstrates this method successfully.
j777
Messages
148
Reaction score
0
Hello,

Is there a way to read the MAC address of a linux system directly? ie not from the output of arp or ifconfig ---> Where does ifconfig read the MAC address from?


Thanks
 
Technology news on Phys.org
It reads it from the kernel. You can probably find it somewhere in the /proc filesystem.. I'll browse around.

- Warren
 
Parsing the output, as you suggested, is one way. Looking at a socket object is another. I think this would probably be the best way to do it under Linux.

Here's an example of how one might do this in Python:
Code:
import socket
sock = socket.socket (socket.AF_PACKET,socket.SOCK_RAW)
sock.bind (("eth0", 9999))
mac = s.getsockname()[-1]
 
I actually just found this example which works.

Thanks for the help chroot and Sane.

http://english.geekpage.jp/programming/linux-network/get-macaddr.php"
 
Last edited by a moderator:
Haha, yes. That's exactly what I had suggested. :wink:

It looks at a socket object to see the MAC address.
 
Last edited:
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 1 ·
Replies
1
Views
5K
Replies
3
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K
Replies
4
Views
2K
Replies
2
Views
2K
Replies
4
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
Replies
2
Views
2K
Replies
6
Views
3K