IPアドレスとMACアドレスを取得したい(C言語)
OSはLinuxで、コンパイラはgccです。
C言語でプログラムを作っていて、自分のIPアドレスとMACアドレスを取得しようと考えています。下のソースでIPアドレスは入手できたのですが、MACアドレスも取得しようとしたら、IPアドレスが上手く取得できなくなりました。ioctl(fd, SIOCGIFHWADDR, &ifr);で取得できるとおもうのですが、同時に取得しようとするとIPアドレスの表示が正しくされなくなっている状況です。
/* 自IPアドレスの取得 */
int fd;
struct ifreq ifr;
fd = socket(AF_INET, SOCK_STREAM, 0);
ifr.ifr_addr.sa_family = AF_INET;
/* eth0のIPアドレスの取得 */
strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
ioctl(fd, SIOCGIFADDR, &ifr);
/* MACアドレスの取得 */ ←上書きされている??
ioctl(fd, SIOCGIFHWADDR, &ifr);
close(fd);
どなかたご教授お願いいたします。
お礼
回答ありがとうございます。 なるほどですね。