uniquely identifying a machine...
Marcus Stojek
stojek at part-gmbh.de
Mon Mar 10 15:10:38 EST 2003
Got it !
I knew it has been a famous name.
Author:Mark Hammond (mhammond at skippinet.com.au)
Subject:Re: Determining Ethernet HW Address
"Darrell" <darrell at dorb.com> wrote in message
news:dhSD4.7202$JE5.97355 at typhoon.nyroc.rr.com...
> "Jerome Chan" <eviltofu at rocketmail.com> wrote in message
> > Is there a portable way of determining the Ethernet HW Address?
> >
> For windows without using Win32 try parsing the output of
ipconfig /all
I couldnt resist :-) In win32all-130 you will be able to use the
Netbios function:
from netbios import *
# code ported from "HOWTO: Get the MAC Address for an
Ethernet Adapter"
# MS KB ID: Q118623
ncb = NCB()
ncb.Command = NCBENUM
la_enum = LANA_ENUM()
ncb.Buffer = la_enum
rc = Netbios(ncb)
if rc != 0: raise RuntimeError, "Unexpected result %d" %
(rc,)
for i in range(la_enum.length):
ncb.Reset()
ncb.Command = NCBRESET
ncb.Lana_num = ord(la_enum.lana[i])
rc = Netbios(ncb)
if rc != 0: raise RuntimeError, "Unexpected result %d" %
(rc,)
ncb.Reset()
ncb.Command = NCBASTAT
ncb.Lana_num = ord(la_enum.lana[i])
ncb.Callname = "* "
adapter = ADAPTER_STATUS()
ncb.Buffer = adapter
Netbios(ncb)
print "Adapter address:",
for ch in adapter.adapter_address:
print "%02x" % (ord(ch),) ,
print
Yields on my dual-NIC server:
Adapter address: 00 a0 cc 54 22 2d
Adapter address: 00 40 05 6b fc ca
(both of which are correct :-)
Mark.
--------------------------------------------------------------------------------
Chris Spencer <clspence at one.net> schrieb:
>This might not be a direct Python question, but I thought I'd pose it anyways.
>
>I have a need, for licensing purposes, to be able to uniquely identify a
>machine. For various policy reasons, we can not rely on the TCP/IP stack being
>active. So uniquely identifying a machine by IP address, machine name, or NIC
>address is not possible.
>
>Cross-platform is a plus, but definately not necessary.
>
>Anyone out there have any ideas?
>
>Chris.
More information about the Python-list
mailing list