[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: net kickstarts using HW address



While I think it is the case that I'll always be on the same subnet as the
boot server, I'm not sure that I want to depend on this.  Also, I'm currently
still only using RH7.1, and I didn't think I saw anything in the 7.1 code to
support http (though I haven't tried it yet).

Anyway, I came up with some sample code to print my hardware address, and it
should drop right into loader.c.  Here it is, for anyone who's interested:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <sys/ioctl.h>
#include <net/ethernet.h>
#include <linux/if.h>

main() {
  int fd = socket(AF_INET, SOCK_DGRAM, 0);
  int i=0;
  struct ifreq ifr;
  memset(&ifr, 0, sizeof(ifr));
  strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));
  ioctl(fd, SIOCGIFHWADDR, (char*)&ifr);
  close(fd);
  while (i < ETHER_ADDR_LEN)
    printf("%02X", (unsigned char) ifr.ifr_hwaddr.sa_data[i++]);
  printf("\n");
}





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]