SUMMARY: Does the ethernet address uniquely identify a machine?

From: Andy Burgess (
Date: Tue Apr 07 1992 - 03:49:33 CDT

In <> I wrote:

| I need to determine the identity of the machine I am running on for a
| node locked security scheme for a client of mine.
| It seems to me that the ethernet address is a good indicator of machine identity
| since they would never be duplicated in any given network and I don't think they
| are user alterable. Please correct me if I am wrong.
| The question is how to obtain this address. If no system independent way exists
| I would like to know for Sun Sparc and for SGI.

Here is what I learned.

In general, ethernet cards have a 'built-in' unique address
BUT systems allow the address used to be changed.

There doesn't seem to be a reliable way on Suns to get the ethernet
address as non-root anyway.

The RS/6000 has a handy ioctl() to read both the permanent and the 'in use'
ethernet addresses.

SGI's have a sysid() library function, the ethernet address is contained
in the bytes returned but its location in those bytes is OS version
dependent. Upgrading the OS changes the sysid!

Suns have their unique hostid in EEPROM BUT it is copied into kernel memory
and can be changed by a system call. There doesn't seem to be a way to
read the EEPROM directly (as non-root).

Someone also suggested the hardware doohickey that plugs into a RS-232
or parallel port as part of a license scheme. Worth looking into
but not as attractive as a software solution and possibly not worth it if
the software solution works 80-90% of the time.

Thank you all for responding!


Andrew A. Burgess                  UNIX, C++, X, Motif, Programming language
Consulting Software Engineer       design and implementation, Performance                    analysis & tuning, Application programming,
voice (408) 335 4779               Embedded systems

This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:06:40 CDT