Determining Ethernet HW Address

Steve Holden sholden at
Fri Mar 31 23:09:16 CEST 2000

Grant Edwards wrote:
> In article <Pine.OSF.4.20.0003311330090.705-100000 at>, Anthony J Wilkinson wrote:
> >>>>I'm still curious of what use the Ethernet address is to an application?
> >>>
> >>>Perhaps globally unique random number generation?
> >>
> >> My Ethernet addresses aren't random -- they're all quite predictable.
> >> In fact, they read the same each time I check them.  Not too useful for
> >> random number generation.
> >
> >But useful to give a different seed to a random function for each
> >different machine.
> But it's different in an utterly predictable and time-invariant way.
> >Combine this with date/time and you have a very good candidate for a
> >globally unique number which will certainly improve pseudo-random functions.
> No, it won't improve a pseudo-random function.  The pseudo-random function
> will still have the same periodicity and correlation features (or whatever
> the random-number experts call it).  All you're doing is adding a constant
> value to the seed.  By adding the Ethernet address to the seed, you're just
> starting at a different place in the sequence generated by the pseudo-random
> number generator.  And that "difference" is a constant!
> [treatise on pseudo-random number generation]
> You can't generate more or better randomness by shoving more constants (such
> as an Ethernet address) into a function.
> --
> Grant Edwards                   grante             Yow!  I love ROCK 'N
>                                   at               ROLL! I memorized the
>                                  all WORDS to "WIPE-OUT"
>                                                    in1965!!

Your remarks are correct, but perhaps not to the point.

I suspect that what was being suggested here was the use of the Ethernet
address in the creation of GUIs (globally-unique identifiers).  For such
an identifier to be globally unique it requires two components.

One is a portion specific to the locale in which it is created, which
is what guarantees the global uniqueness.  An Ethernet identifier would
do quite nicely for this purpose (although manufacturers have been known
to slip up and produce more than one interface with a particular MAC
address).  Thus every GUI produced by a particular machine would have
a part of the GUI fixed.

The second is a once-only value from the locale: frequently this is a
derivative of the time, but the next number from a pseudo-random
sequence would do very well also.  The seed for the sequence is not
really relevant here, the important thing is that each value should
be used only once.

"Bulding information systems just because it's fun."
Steve Holden  sholden at  703 716 7275

More information about the Python-list mailing list