>> Is there a way of finding out the ethernet mac address of an
>> ethernet interface without having to look at arp caches??
>
> ifconfig *as root*
i wonder it could be done by going into the eeprom and typing 'banner'
that should spit out a few statistics about the machine arch., amount of
ram, and I think mac address too. I may be wrong, by you can try it...
Given
$ prtconf -pv|grep idprom:
idprom: 01830003.ba04ae0e.000003ba.04ae0e82.00000000.00000000.00000000.00000000
MAC address 0:3:ba:4:ae:e, hostid, 8304ae0e, Sun Blade 100
(note the parts of the idprom string that contains the MAC address and
hostid)
01830003.ba04ae0e.000003ba.04ae0e82.00000000.00000000.00000000.00000000
m5m4 m3m2m1m0 m5m4m3 m2m1m0
h3 h2h1h0 h2h1h0
and on another system,
MAC address 8:0:20:a:25:32, hostid 52002976, SPARCstation IPC
01520800.200a2532.26c47775.002976d9.00000000.00000000.a5a5a5a5.a5a5a5a5
m5m4 m3m2m1m0
h3 h2h1h0
and another,
MAC address 8:0:20:11:fb:29, hostid 72601d31, SPARCstation 10
01720800.2011fb29.2abe0691.601d31d7.55555555.55555555.55010055.55555555
m5m4 m3m2m1m0
h3 h2h1h0
and another,
MAC address 8:0:20:1c:2f:df, hostid 8070ace6, SPARCstation Voyager
01800800.201c2fdf.2db54231.70ace694.55555555.55555555.55555555.55555555
m5m4 m3m2m1m0
h3 h2h1h0
one might just begin to suspect a pattern here...
Of course, I have no idea whether anything similar would hold for x86
(which has no IDPROM, after all), and I suppose it might not hold on
some present or future models even on SPARC, but it is something.
Or one could scrounge for a program that does some DLPI stuff, but that
would have to be setuid to access the device file for the interface to be
able to get the MAC address. (check the news archives, I know such
programs are out there)
Or one could have lots of money and lobby for the SIOCGENADDR ioctl to be
implemented, but I wouldn't hold my breath.
BTW, if the top bit of the hostid is not on, the top nybble encodes the
architecture and the entire top byte encodes the model (see sys/cpu.h on
Solaris 7 or earlier; if the top bit _is_ on, that info is to be obtained
elsewhere (and that information apparently wasn't something you were
supposed to depend on anyway, so it's gone in Solaris 8, but probably at
least mentioned in the NVRAM/hostid FAQ, since if restoring the hostid,
you need to get that byte right for sure).
This whole stinkin' subject needs to be a FAQ if it isn't already, it
certainly comes up often enough...
--
mailto:rlh...@mindwarp.smart.net http://www.smart.net/~rlhamil
dmesg -a | grep -i ether
Tony