Rechercher une page de manuel
netdevice
Langue: ja
Version: 1999-05-02 (openSuse - 09/10/07)
Section: 7 (Divers)
̾Á°
netdevice - Linux ¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤Ø¤ÎÄã¥ì¥Ù¥ë¥¢¥¯¥»¥¹½ñ¼°
#include <sys/ioctl.h>#include <net/if.h>
ÀâÌÀ
¤³¤Î man ¥Ú¡¼¥¸¤Ç¤Ï¡¢¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¤¿¤á¤Ë ÍѤ¤¤ë¥½¥±¥Ã¥È¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ²òÀ⤹¤ë¡£Linux ¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¥Ç¥Ð¥¤¥¹¤òÀßÄꤹ¤ë¤¿¤á¤Îɸ½àŪ¤Ê ioctl ¤ò ¤¤¤¯¤Ä¤«È÷¤¨¤Æ¤¤¤ë¡£¤³¤ì¤é¤Ï¤É¤ó¤Ê¥½¥±¥Ã¥È¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¤â ÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤ë¡£¥Õ¥¡¥ß¥ê¡¼¤ä¥¿¥¤¥×¤Ï²¿¤Ç¤â¤è¤¤¡£ ¤³¤ì¤é¤Î ioctl ¤Ï ifreq ¹½Â¤ÂΤòÅϤ¹¡£
struct ifreq { char ifr_name[IFNAMSIZ]; /* Interface name */ union { struct sockaddr ifr_addr; struct sockaddr ifr_dstaddr; struct sockaddr ifr_broadaddr; struct sockaddr ifr_netmask; struct sockaddr ifr_hwaddr; short ifr_flags; int ifr_ifindex; int ifr_metric; int ifr_mtu; struct ifmap ifr_map; char ifr_slave[IFNAMSIZ]; char ifr_newname[IFNAMSIZ]; char * ifr_data; }; }; struct ifconf { int ifc_len; /* size of buffer */ union { char * ifc_buf; /* buffer address */ struct ifreq * ifc_req; /* array of structures */ }; };
Ä̾¥æ¡¼¥¶¡¼¤Ë¤è¤ëÀßÄêÂоݥǥХ¤¥¹¤Î»ØÄê¤Ï¡¢ ifr_name ¤Ë¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò¥»¥Ã¥È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤¦¡£ ¾¤Î¹½Â¤ÂΤÎÁ´¤Æ¤Î¥á¥ó¥Ð¤Ï¡¢¥á¥â¥ê¤ò¶¦Í¤¹¤ë¡£
ioctl
¡ÖÆø¢¤¬É¬Íספȵ½Ò¤µ¤ì¤Æ¤¤¤ë ioctl ¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï¡¢ ¼Â¸ú¥æ¡¼¥¶¡¼ ID ¤¬ 0 ¤«¡¢ CAP_NET_ADMIN ¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£¤³¤ì¤¬Ëþ¤¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï EPERM ¤¬ÊÖ¤µ¤ì¤ë¡£- SIOCGIFNAME
- ifr_ifindex ¤ò¼õ¤±¼è¤ê¡¢¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò ifr_name ¤ËÆþ¤ì¤ÆÊÖ¤¹¡£¤³¤ì¤Ï·ë²Ì¤ò ifr_name ¤È¤·¤ÆÊÖ¤¹Í£°ì¤Î ioctl ¤Ç¤¢¤ë¡£
- SIOCGIFINDEX
- ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î interface index ¤ò¼èÆÀ¤·¡¢ ifr_ifindex ¤ËÆþ¤ì¤ÆÊÖ¤¹¡£
- SIOCGIFFLAGS, SIOCSIFFLAGS
- ¥Ç¥Ð¥¤¥¹¤Î active ¥Õ¥é¥°¥ï¡¼¥É¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄꤹ¤ë¡£ ifr_flags ¤Ë¤Ï°Ê²¼¤ÎÃͤΥӥåȥޥ¹¥¯¤¬Æþ¤ë¡£
¥Ç¥Ð¥¤¥¹¥Õ¥é¥° IFF_UP ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÏÆ°ºîÃæ¡£ IFF_BROADCAST ͸ú¤Ê¥Ö¥í¡¼¥É¥¥ã¥¹¥È¥¢¥É¥ì¥¹¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ë¡£ IFF_DEBUG ÆâÉô¤Î¥Ç¥Ð¥Ã¥°¥Õ¥é¥°¡£ IFF_LOOPBACK ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï¥ë¡¼¥×¥Ð¥Ã¥¯¤Ç¤¢¤ë¡£ IFF_POINTOPOINT ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï point-to-point ¥ê¥ó¥¯¤Ç¤¢¤ë¡£ IFF_RUNNING ¥ê¥½¡¼¥¹¤¬³ä¤êÅö¤ÆºÑ¤ß¡£ IFF_NOARP arp ¥×¥í¥È¥³¥ë¤¬¤Ê¤¤¡£ IFF_PROMISC ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Ï promiscuous ¥â¡¼¥É¤Ç¤¢¤ë¡£ IFF_NOTRAILERS trailer ¤ÎÍøÍѤòÈò¤±¤ë¡£ IFF_ALLMULTI Á´¤Æ¤Î¥Þ¥ë¥Á¥¥ã¥¹¥È¥Ñ¥±¥Ã¥È¤ò¼õ¿®¤¹¤ë¡£ IFF_MASTER Éé²Ùʬ»¶¥°¥ë¡¼¥×¤Î¥Þ¥¹¥¿¡¼¤Ç¤¢¤ë¡£ IFF_SLAVE Éé²Ùʬ»¶¥°¥ë¡¼¥×¤Î¥¹¥ì¡¼¥Ö¤Ç¤¢¤ë¡£ IFF_MULTICAST ¥Þ¥ë¥Á¥¥ã¥¹¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£ IFF_PORTSEL ifmap ¤Ë¤è¤Ã¤Æ¥á¥Ç¥£¥¢¥¿¥¤¥×¤òÁªÂò¤Ç¤¤ë¡£ IFF_AUTOMEDIA ¼«Æ°¥á¥Ç¥£¥¢ÁªÂò¤¬Í¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£ IFF_DYNAMIC ¤³¤Î¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ÊĤ¸¤ë¤È¡¢¥¢¥É¥ì¥¹¤Ï¼º¤ï¤ì¤ë¡£ - SIOCGIFMETRIC, SIOCSIFMETRIC
- ¥Ç¥Ð¥¤¥¹¤Î¥á¥È¥ê¥Ã¥¯¤ò ifr_metric ¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ ¤³¤ì¤Ï¤Þ¤À¼ÂÁõ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£Æɤ߽Ф½¤¦¤È¤¹¤ë¤È ifr_metric ¤Ë 0 ¤ò¥»¥Ã¥È¤·¤ÆÊ֤ꡢÀßÄꤷ¤è¤¦¤È¤¹¤ë¤È EOPNOTSUPP ¤¬Ê֤롣
- SIOCGIFMTU, SIOCSIFMTU
- ¥Ç¥Ð¥¤¥¹¤Î MTU (Maximum Transfer Unit) ¤ò ifr_mtu ¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ MTU ¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£ MTU ¤ÎÃͤò¾®¤µ¤¯¤·¤¹¤®¤ë¤È¥«¡¼¥Í¥ë¤¬¥¯¥é¥Ã¥·¥å¤¹¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
- SIOCGIFHWADDR, SIOCSIFHWADDR
- ¥Ç¥Ð¥¤¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤ò ifr_hwaddr ¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ ¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤Ï sockaddr ¹½Â¤ÂΤËÀßÄꤵ¤ì¤ë¡£ sa_family ¤Ë¤Ï ARPHRD_* ¥Ç¥Ð¥¤¥¹¥¿¥¤¥×¤¬Æþ¤ê¡¢ sa_data ¤Ï¥Ð¥¤¥È 0 ¤«¤é»Ï¤Þ¤ë L2 ¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ ¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£
- SIOCSIFHWBROADCAST
- ¥Ç¥Ð¥¤¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¥Ö¥í¡¼¥É¥¥ã¥¹¥È¥¢¥É¥ì¥¹¤ò ifr_hwaddr ¤ÎÃͤËÀßÄꤹ¤ë¡£¤³¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£
- SIOCGIFMAP, SIOCSIFMAP
- ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Î¥Ñ¥é¥á¡¼¥¿¤ò ifr_map ¤òÍѤ¤¤Æ¼èÆÀ¡¦ÀßÄꤹ¤ë¡£ ¥Ñ¥é¥á¡¼¥¿¤ÎÀßÄê¤ÏÆø¢¤¬É¬ÍפÊÁàºî¤Ç¤¢¤ë¡£
struct ifmap { unsigned long mem_start; unsigned long mem_end; unsigned short base_addr; unsigned char irq; unsigned char dma; unsigned char port; };
ifmap ¹½Â¤ÂΤβò¼á¤Ï¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤È¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ë°Í¸¤¹¤ë¡£
- SIOCADDMULTI, SIOCDELMULTI
- ¥Ç¥Ð¥¤¥¹¤Î¥ê¥ó¥¯ÁؤΥޥë¥Á¥¥ã¥¹¥È¥Õ¥£¥ë¥¿¡¼¤«¤é¡¢ ifr_hwaddr ¤Î¥¢¥É¥ì¥¹¤òÄɲᦺï½ü¤¹¤ë¡£¤³¤ì¤é¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£ ÊÌË¡¤¬ packet(7) ¤Ç²òÀ⤵¤ì¤Æ¤¤¤ë¡£
- SIOCGIFTXQLEN, SIOCSIFTXQLEN
- ¥Ç¥Ð¥¤¥¹¤ÎÁ÷¿®¥¥å¡¼¤ÎŤµ¤ò ifr_qlen ¤Ë¼èÆÀ¡¦ÀßÄꤹ¤ë¡£Á÷¿®¥¥å¡¼¤ÎŤµ¤ÎÀßÄê¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£
- SIOCSIFNAME
-
ifr_name ¤Ç»ØÄꤷ¤¿¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤ò ifr_newname ¤ËÊѹ¹¤¹¤ë¡£¤³¤ÎÁàºî¤Ë¤ÏÆø¢¤¬É¬ÍפǤ¢¤ë¡£¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤¬ up ¤·¤Æ¤¤¤Ê¤¤ »þ¤Ë¤Î¤ß»ÈÍѤǤ¤ë¡£
- SIOCGIFCONF
- ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹(¥È¥é¥ó¥¹¥Ý¡¼¥ÈÁØ)¥¢¥É¥ì¥¹¤Î¥ê¥¹¥È¤òÊÖ¤¹¡£ ¸½ºß¤Î¤È¤³¤í¡¢¸ß´¹À¤Î¤¿¤á¤Ë AF_INET (IPv4) ¥Õ¥¡¥ß¥ê¡¼¤Î¥¢¥É¥ì¥¹¤Î¤ß¤Ç¤¢¤ë¡£ ¥æ¡¼¥¶¡¼¤Ï ifconf ¹½Â¤ÂΤò ioctl ¤Î°ú¿ô¤È¤·¤ÆÅϤ¹¡£ ¤³¤ì¤Ë¤Ï ifreq ¹½Â¤ÂΤÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë ifc_req ¤È¡¢¤½¤ÎŤµ¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë ifc_len ¤ò´Þ¤à¡£ ¥«¡¼¥Í¥ë¤Ï ifreqs ¤ò¸½ºßÆ°ºî¤·¤Æ¤¤¤ëÁ´¤Æ¤Î L3 ¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥¢¥É¥ì¥¹¤ÇËä¤á¤ë¡£ ifr_name ¤Ë¤Ï¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹Ì¾ (eth0:1 ¤Ê¤É) ¤¬Æþ¤ê¡¢ ifr_addr ¤Ë¤Ï¥¢¥É¥ì¥¹¤¬Æþ¤ë¡£ ¥«¡¼¥Í¥ë¤Ï¼ÂºÝ¤ÎŤµ¤ò ifc_len ¤ËÊÖ¤¹¡£ ifc_len ¤¬¸µ¤Î¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤ÈƱ¤¸¤À¤Ã¤¿¾ì¹ç¡¢ ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤òµ¯¤³¤·¤Æ¤¤¤ë²ÄǽÀ¤¬¤¢¤ë¤Î¤Ç¡¢ Á´¤Æ¤Î¥¢¥É¥ì¥¹¤ò½êÆÀ¤¹¤ë¤¿¤á¤Ë¤è¤êÂ礤ʥХåե¡¤ÇºÆ»î¹Ô¤¹¤ë¤Ù¤¤Ç¤¢¤ë¡£ ¥¨¥é¡¼¤¬¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï ioctl ¤Ï 0 ¤òÊÖ¤¹¡£ ¥¨¥é¡¼¤¬¤¢¤Ã¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤¹¡£ ¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤Ï¥¨¥é¡¼¤È¤Ï¸«¤Ê¤µ¤ì¤Ê¤¤¡£
¤Û¤È¤ó¤É¤Î¥×¥í¥È¥³¥ë¤Ë¤Ï¡¢ÀìÍѤΥ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¥ª¥×¥·¥ç¥ó¤ò ÀßÄꤹ¤ë¤¿¤á¤ÎÆȼ«¤Î ioctl ¤¬Â¸ºß¤¹¤ë¡£ ÀâÌÀ¤Ï³Æ¥×¥í¥È¥³¥ë¤Î man ¥Ú¡¼¥¸¤ò¸«¤è¡£
¤µ¤é¤Ë¡¢¥Ç¥Ð¥¤¥¹¤Ë¤è¤Ã¤Æ¤Ï¥×¥é¥¤¥Ù¡¼¥È¤Ê ioctl ¤¬¤¢¤ë¡£ ¤³¤ì¤é¤Ï¤³¤³¤Ç¤ÏÀâÌÀ¤·¤Ê¤¤¡£
Ãí°Õ
¸·Ì©¤Ë¤¤¤¦¤È¡¢ SIOCGIFCONF ¤Ï IP ¸ÇͤǤ¢¤ê¡¢ ip(7) ¤Ë°¤¹¤ë¡£¥¢¥É¥ì¥¹¤¬¤Ê¤«¤Ã¤¿¤ê¡¢ IFF_RUNNING ¥Õ¥é¥°¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¥¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤Î̾Á°¤Ï /proc/net/dev ¤Ç¸«¤Ä¤±¤ë¤³¤È¤¬½ÐÍè¤ë¡£
¥í¡¼¥«¥ë IPV6 IP ¥¢¥É¥ì¥¹¤Ï /proc/net ¤« rtnetlink(7) ¤Ç¸«¤Ä¤±¤ë¤³¤È¤¬½ÐÍè¤ë¡£
¥Ð¥°
glibc 2.1 ¤Ç¤Ï net/if.h ¤Ë ifr_newname ¥Þ¥¯¥í¤¬¤Ê¤¤¡£ ¤È¤ê¤¢¤¨¤º¤ÎÂбþºö¤È¤·¤Æ¡¢°Ê²¼¤Î¥³¡¼¥É¤òÄɲ䷤Ƥª¤¯¤³¤È¡£-
#ifndef ifr_newname #define ifr_newname ifr_ifru.ifru_slave #endif
´ØÏ¢¹àÌÜ
capabilities(7), ip(7), proc(7), rtnetlink(7)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre