В сообщении от 11 Июль 2005 16:20 Denis Ovsienko написал(a): > > Собсно "проблема" скорее эстетическая -- нафига мне libwireless > > и ifrename, если WiFi нет и переименовывать интерфейсы тоже не > > надо? :) > > Если вспомнить, что у тебя на ноутбуке два слота с сетевыми картами, то как > раз нужно. libwireless востребован ifrename, обоснованность не проверял. $ gcc -o ifrename ifrename.c /tmp/.private/shrek/ccZ9DBYt.o(.text+0x424): In function `mapping_addmac': ifrename.c: undefined reference to `iw_ether_aton' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x594): In function `mapping_getmac': ifrename.c: undefined reference to `iw_get_mac_addr' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x602):ifrename.c: undefined reference to `iw_ether_ntop' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x1c02): In function `probe_mappings': ifrename.c: undefined reference to `iw_get_mac_addr' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x1d34): In function `probe_debian': ifrename.c: undefined reference to `iw_get_mac_addr' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x2131): In function `main': ifrename.c: undefined reference to `iw_sockets_open' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x2233): In function `process_iflist': ifrename.c: undefined reference to `iw_enum_devices' /tmp/.private/shrek/ccZ9DBYt.o(.text+0x225b):ifrename.c: undefined reference to `iw_enum_devices' collect2: ld returned 1 exit status $ gcc -o ifrename ifrename.c -liw -L/lib все ок. $ grep iw ifrename.c * You need to link this code against "iwlib.c" and "-lm". #include "iwlib.h" /* Wireless Tools library */ char iwproto[IFNAMSIZ + 1]; /* Wireless/protocol name */ mapping_addiwproto(struct if_mapping * ifnode, mapping_cmpiwproto(struct if_mapping * ifnode, mapping_getiwproto(int skfd, /* Wireless Protocol from iwconfig */ { "iwproto", &mapping_addiwproto, &mapping_cmpiwproto, &mapping_getiwproto }, if(iw_ether_aton(ifnode->mac_filter, &ifnode->mac) != 1) ret = iw_get_mac_addr(skfd, ifname, &target->mac, &target->hw_type); iw_ether_ntop(&target->mac, target->mac_filter); mapping_addiwproto(struct if_mapping * ifnode, if(len >= sizeof(ifnode->iwproto)) memcpy(ifnode->iwproto, string, len + 1); ifnode->iwproto, linenum); mapping_cmpiwproto(struct if_mapping * ifnode, return(fnmatch(ifnode->iwproto, target->iwproto, FNM_CASEFOLD)); mapping_getiwproto(int skfd, struct iwreq wrq; if(iw_get_ext(skfd, ifname, SIOCGIWNAME, &wrq) < 0) strncpy(target->iwproto, wrq.u.name, IFNAMSIZ); target->iwproto[IFNAMSIZ] = '\0'; ifname, target->iwproto); iw_get_mac_addr(skfd, ifnode->ifname, &mac, &hw_type); iw_get_mac_addr(skfd, p, &mac, &hw_type); iw_enum_devices(skfd, &process_ifname, args, count); * iw_enum_devices() may get out of sync with the real interfaces, iw_enum_devices(skfd, &process_ifname, args, count); if((skfd = iw_sockets_open()) < 0) iw_sockets_close(skfd); обоснованность на лицо -- Valery V. Inozemtsev