Hi,
mit der for Schleife unten kann ich auf die Infos von den Netwerkkarten zugreifen,
aber es sind noch 2 Sachen die ich gern wissen will:
1. die Hardwareadrese
#define ifr_hwaddr ifr_ifru.ifru_hwaddr /* MAC address */
2. Die bandbreite:
#define ifr_bandwidth ifr_ifru.ifru_ivalue /* link bandwidth */
wie kriege ich dies raus?
for (i = 0; i < numdevs; i++)
{
/* devptr points into an array of ifreq structs. */
devptr = &ifc_conf.ifc_req;
if (devptr->ifr_addr.sa_family != AF_INET)
continue;
if (ioctl(sd,SIOCGIFFLAGS,devptr) < 0)
{
fprintf(stderr,"Error: Unable to get device interface flags.
");
perror("ioctl");
close(sd);
return -1;
}
if ((devptr->ifr_flags & IFF_LOOPBACK) == 0)
{
if ((devptr->ifr_flags & IFF_UP) == !0)
{
printf("Active interface[%d]: %s
", i, devptr->ifr_name );
infs_addr.s_addr = ((struct sockaddr_in*)&devptr->ifr_addr)->sin_addr.s_addr;
//printf("Interface long int addr: %d", infc_addr.s_addr);
//printf("
");
printf("IP addr: %s
", inet_ntoa(infs_addr));
printf("metric: %d
", devptr->ifr_name);
printf("mtu: %d
", devptr->ifr_mtu);
printf("newname: %d
",inet_ntoa(devptr->ifr_hwaddr));
printf("bandwith: %d
", devptr->ifr_bandwidth);
printf("
");
}
}
}