struct ifreq ifr; d = socket (...); sprintf (ifr.ifr_name, "%s", "eth0"); /* Najpierw musimy odczytać aktulane flagi */ ioctl (d, SIOCGIFFLAGS, &ifr); /* Dodajemy flagę IFF_PROMISC */ ifr.ifr_flags |= IFF_PROMISC; ioctl (d, SIOCSIFFLAGS, &ifr);
struct ifreq ifr;
struct in_addr inaddr;
d = socket (...);
strcat (ifr.ifr_name, "eth0");
/* Musimy wypełnić pole ifr_addr nowym adresem */
inet_aton ("192.192.192.192", &inaddr);
ifr.ifr_addr.sa_family=PF_INET;
memcpy (ifr.ifr_addr.sa_data + 2, (char *)&inaddr, 4);
ioctl (d, SIOCSIFADDR, &ifr);
/* Voila. */
Wszystkie (oprócz SIOCGIFCONF) przedstawione dotąd polecenia ioctl() oczekują parametrów będących wskaźnikami do struktury ifreq.