[syslinux] finding mac address while in menusystem (com32)

H. Peter Anvin hpa at zytor.com
Mon Mar 3 09:33:42 PST 2008


Kjetil.Mikkelborg at kongsberg.com wrote:
> Hi
> 
> I have made myself a derivated menusystem based on the complex.c menu that cames with syslinux.
> And now I need to read a file, search for my pxebooted netcards mac address, and write some changes back to the same file.
> All the writing and reading I hopes will be of no trouble, but how can i find my own mac address? (and IP adress would be nice).
> 
> I have searched the list, but I really cannot find any hints on this, so either I am trying to do something unusual, or I am blind to how to do it!
> 

There are three ways to do it:

a) the easy way:

    * Use syslinux_ipappend_strings() (from <syslinux/config.h>)

    This gets you the ip= and BOOTIF= strings, which contain your
    ip address and hardware address, respectively.

b) the hard way:

    * pxe_get_cached_info() gets you the DHCP information
      (from <syslinux/pxe.h>).

    This includes both your IP address and the hardware address.  Do note
    that the hardware address can be encoded in two different ways,
    depending on the underlying medium (e.g. Infinibad does it
    differently than Ethernet.)

    This is effectively what PXELINUX does internally.

c) the really hard way:

    * Use pxe_get_cached_info() to get the IP address, and PXE call
      0x000C (PXENV_UNDI_GET_INFORMATION) to get the hardware address.

    I don't have a librarized version of PXENV_UNDI_GET_INFORMATION at
    this time.

	-hpa





More information about the Syslinux mailing list