#include"stdio.h"
#include"unistd.h"
#include"sys/socket.h"
#include"sys/ioctl.h"
#include"net/if.h"
#include"netinet/in.h"
int main()
{
int sfd;
struct ifconf interface;
struct ifreq ifreq1;
struct sockaddr_in* addr = NULL;
unsigned char mac[6];
unsigned char ip[4];
unsigned char brdaddr[4];
unsigned char netmask[4];
sfd = socket(PF_INET,SOCK_DGRAM,0);
strcpy(ifreq1.ifr_name,"eth0");
ioctl(sfd,SIOCGIFHWADDR,&ifreq1);
memcpy(mac,ifreq1.ifr_hwaddr.sa_data,6);
ioctl(sfd,SIOCGIFADDR,&ifreq1);
addr = (struct sockaddr_in*)&ifreq1.ifr_addr;
*(u_int32_t *)ip = addr -> sin_addr.s_addr;
ioctl(sfd,SIOCGIFBRDADDR,&ifreq1);
*(u_int32_t *)brdaddr = addr -> sin_addr.s_addr;
ioctl(sfd,SIOCGIFNETMASK,&ifreq1);
*(u_int32_t *)netmask = addr -> sin_addr.s_addr;
printf("%X:%X:%X:%X:%X:%X\n",mac[0],mac[1],mac[2],mac[3],\
mac[4],mac[5]);
printf("%d.%d.%d.%d\n",ip[0],ip[1],ip[2],ip[3]);
printf("%d.%d.%d.%d\n",brdaddr[0],brdaddr[1],brdaddr[2],brdaddr[3]);
printf("%d.%d.%d.%d\n",netmask[0],netmask[1],netmask[2],netmask[3]);
return 0;
}