Dr.Knowitall
Dr.Knowitall

Reputation: 10498

How does linux pull my mac address to send over the link?

I want to build a MAC address spoofer that spits out a randomize mac address everytime my computer boots up. My question is how and from where do all my computer programs in linux pull up my MAC address. I know that my wi-fi network driver is responsible for telling my network card what to send, but from where does that driver get my MAC address? I also know that a MAC address is called a hardware address, however since it is possible to spoof MAC addresses, then it must only mean that the MAC address on my network card doesn't have to be used when sending information. I would like to know how this can be done as well.

Also when randomizing my MAC address this ought to work with all other programs such as my web-browser and whatever else that I use, which shouldn't be a problem since thats really an application layer ... not link layer

Thanks

Upvotes: 0

Views: 518

Answers (2)

cmeerw
cmeerw

Reputation: 7356

The MAC address is usually stored in some kind of EEPROM on the network card. This address is read during initialization by the network adapter driver and used by the MAC layer when assembling/sending netowrk packets.

The MAC address used can be changed on the command line using "ifconfig" via the "hw" option:

hw class address

Set the hardware address of this interface, if the device driver
supports  this  operation.   The keyword must be followed by the
name of the hardware class and the printable ASCII equivalent of
the  hardware  address.   Hardware  classes  currently supported
include ether (Ethernet), ax25 (AMPR AX.25), ARCnet  and  netrom
(AMPR NET/ROM).

ifconfig essentially uses the SIOCSIFHWADDR ioctl (see http://linux.die.net/man/7/netdevice) to set the MAC address.

In some cases it might even be possible to change the MAC address stored on the network adapter itself, see http://linux.die.net/man/8/ethtool - but I wouldn't recommend doing that.

Upvotes: 3

Ben Ashton
Ben Ashton

Reputation: 1405

The only thing that cares about your MAC address is the NIC itself. There should be no programs that use the MAC address (including browsers). Since MAC addresses are used on the physical layer -- that's the only thing that will read your MAC (such as routers, switches, etc).

To set the MAC address of your NIC you can use the ifconfig command: ifconfig eth0 hw ether ##:##:##:##:##:## (you might have to take your network down first, set it, and then bring it up. IE: ifconfig eth0 down; ifconfig eth0 hw ether ##:##:##:##:##:#; ifconfig eth0 up)

Upvotes: 1

Related Questions