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

Kjetil.Mikkelborg at kongsberg.com Kjetil.Mikkelborg at kongsberg.com
Wed Mar 5 04:57:34 PST 2008


Thanks for your response,

but... I am not _that_ skilled in C,

how the heck can i get the information from either syslinux_ipappend_strings, or pxe_get_cached_info to be stored in a regular char array?
every attempt ive tried so far results in just garbage printed out in my menu.

Any example code? (tried both linux.c and reading the libs, but still i really am messing up my code here.

--Kjetil

-----Original Message-----
From: syslinux-bounces at zytor.com [mailto:syslinux-bounces at zytor.com] On Behalf Of H. Peter Anvin
Sent: 3. mars 2008 18:34
To: For discussion of SYSLINUX and tftp-hpa
Subject: Re: [syslinux] finding mac address while in menusystem (com32)

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


_______________________________________________
SYSLINUX mailing list
Submissions to SYSLINUX at zytor.com
Unsubscribe or set options at:
http://www.zytor.com/mailman/listinfo/syslinux
Please do not send private replies to mailing list traffic.




More information about the Syslinux mailing list