NETDEVICE 7
目录
- NAME netdevice
- 总览 (SYNOPSIS)
- 描述 (DESCRIPTION)
- IOCTLS 如果 某个 ioctl 标记为 特权操作, 那么 操作时 需要 有效uid 为 0, 或者 拥有 .B CAP_NET_ADMIN 能力. 否则 将 返回 .B EPERM . .TP .B SIOCGIFNAME 给定 .BR ifr_ifindex, 返回 .BR ifr_name 中 的 接口名字. 这是 唯一 返回 .BR ifr_name 内容 的 ioctl. .TP .B SIOCGIFINDEX 把 接口 的 索引 存入 .BR ifr_ifindex . .TP .BR SIOCGIFFLAGS
- 注意 (NOTE)
- 注意 (NOTE)
- 另见 (SEE ALSO)
- [中文版维护人]
- [中文版最新更新]
- 《中国linux论坛man手册页翻译计划》:
- 跋
NETDEVICE
NAMEæ»è§ (SYNOPSIS)
æè¿° (DESCRIPTION)
IOCTLS
注æ (NOTE)
注æ (NOTE)
å¦è§ (SEE ALSO)
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
è·
NAME
netdevice - åºå±è®¿é® Linux ç½ç»è®¾å¤.
æ»è§ (SYNOPSIS)
#include
<sys/ioctl.h>
#include <net/if.h>
æè¿° (DESCRIPTION)
æ¬æå æè¿° ç¨äº éç½® ç½ç»è®¾å¤ ç 奿¥å(socket) æ¥å£.
Linux æ¯æ ä¸äº éç½® ç½ç»è®¾å¤ ç æ å 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 */ |
|||
|
}; |
};
ä¸è¬è¯´æ¥, ioctl éè¿ æ ifr_name 设置为 æ¥å£ ç åå æ¥ æå® å°è¦ æä½ ç 设å¤. ç»æç å¶ä»æå å¯ä»¥ å享 åå.
IOCTLS
妿
æä¸ª ioctl
æ 记为
ç¹ææä½,
é£ä¹
æä½æ¶ éè¦
ææuid 为 0, æè
æ¥æ CAP_NET_ADMIN
è½å. å¦å å°
è¿å EPERM .
SIOCGIFNAME
ç»å® ifr_ifindex, è¿å ifr_name ä¸ ç æ¥å£åå. è¿æ¯ å¯ä¸ è¿å ifr_name å容 ç ioctl.
SIOCGIFINDEX
æ æ¥å£ ç ç´¢å¼ åå¥ ifr_ifindex.
SIOCGIFFLAGS, SIOCSIFFLAGS
è¯»å æ 设置 设å¤ç æ´»å¨æ å¿å. ifr_flags åå« ä¸åå¼ ç å±è½ä½:

设置 æ´»å¨æ å¿å æ¯ ç¹ææä½, 使¯ ä»»ä½è¿ç¨ é½å¯ä»¥ è¯»å æ å¿å.
SIOCGIFMETRIC, SIOCSIFMETRIC
ä½¿ç¨ ifr_metric è¯»å æ 设置 设å¤ç metric å¼. 该åè½ ç®å è¿æ²¡æ å®ç°. 读åæä½ 使 ifr_metric ç½® 0, è 设置æä½ å è¿å EOPNOTSUPP.
SIOCGIFMTU, SIOCSIFMTU
ä½¿ç¨ ifr_mtu è¯»å æ 设置 设å¤ç MTU(æå¤§ä¼ è¾åå). 设置 MTU æ¯ ç¹ææä½. è¿å°ç MTU å¯è½ å¯¼è´ åæ ¸ å´©æº.
SIOCGIFHWADDR, SIOCSIFHWADDR
ä½¿ç¨ ifr_hwaddr è¯»å æ 设置 设å¤ç 硬件å°å. 设置 硬件å°å æ¯ ç¹ææä½.
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 å¨ è®¾å¤ç é¾è·¯å± ç»æè¿æ»¤å¨ (multicase filter) ä¸ æ·»å æ å é¤ å°å. è¿äºæ¯ ç¹ææä½. åç packet(7).
SIOCGIFTXQLEN, SIOCSIFTXQLEN
ä½¿ç¨ ifr_qlen è¯»å æ 设置 设å¤ç ä¼ è¾éåé¿åº¦. 设置 ä¼ è¾éåé¿åº¦ æ¯ ç¹ææä½.
SIOCSIFNAME
æ ifr_ifindex ä¸ æå®ç æ¥å£åå æ¹æ ifr_newname. è¿æ¯ä¸ª ç¹ææä½.
SIOCGIFCONF
è¿å æ¥å£å°å(ä¼ è¾å±) å表. åºäº å¼å®¹æ§, ç®å åªä»£è¡¨ AF_INET å°å. ç¨æ· ä¼ é ä¸ä¸ª ifconf ç»æ ä½ä¸º ioctl ç åæ°. å¶ä¸ ifc_req åå« ä¸ä¸ª æé æå ifreq ç»ææ°ç», ä»ç é¿åº¦ 以åè 为åä½ åæ¾å¨ ifc_len ä¸. åæ ¸ ç¨ ææ å½åç L3(第ä¸å±?) æ¥å£å°å å¡«å ifreqs, è¿äº æ¥å£ æ£å¨ è¿è¡: ifr_name åæ¾ æ¥å£åå (eth0:1ç), ifr_addr åæ¾ å°å. åæ ¸ å¨ ifc_len ä¸ è¿å å®éé¿åº¦; 妿 ä» çäº åå§é¿åº¦, 表示 溢åºäº, ç¨æ· åºè¯¥ æ¢ä¸ä¸ª 大äºç ç¼å²åº éè¯ ä¸ä¸. 没æ åç éè¯¯æ¶ ioctl è¿å 0, å¦å è¿å -1, æº¢åº ä¸ç® é误.
大夿° åè®® ä½¿ç¨ èªå·±ç ioctl éç½® åè®® ç¹å®ç æ¥å£ æä½. å·ä½ æåµ åç åè®®ç 叮婿å. è¦éç½® IP å°å å¯ä»¥ åç ip(7).
å¦å¤, æäº è®¾å¤ æ ä¸ç¨ç ioctl, è¿é ä¸å åè¿°.
注æ (NOTE)
ä¸¥æ ¼è¯´æ¥ SIOCGIFCONF æ¯ ä¸é¨ é对 IP ç, å® å±äº ip(7).
注æ (NOTE)
å¯ä»¥ éè¿ /proc/net/dev çå° æ²¡æ å°å æ æ²¡æ IFF_RUNNING æ å¿ ç æ¥å£åå.
å¦è§ (SEE ALSO)
ip(7), proc(7)
[䏿çç»´æ¤äºº]
徿 <xuming@iname.com>
[ä¸æçææ°æ´æ°]
2000/10/15
第ä¸ç
2001/11/24
ç¬¬ä¸æ¬¡ä¿®è®¢
ãä¸å½linux论åmanæå页翻è¯è®¡åã:
http://cmpp.linuxforum.net
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh