링크 ux 네트워크 프로 그래 밍 에 자주 사용 되 는 데이터 구조

  linux           
struct sockaddr_in {
sa_family_t sin_family; /* address family: AF_INET */
u_int16_t sin_port; /* port in network byte order */
struct in_addr sin_addr; /* internet address */
};

struct in_addr {
u_int32_t s_addr; /* address in network byte order */
};

struct sockaddr {
ushort sa_family;
char sa_data[14];
};

NAMEnetdevice - 리 눅 스 네트워크 장치 에 바 텀 으로 접근 합 니 다.
총람 (SYNOPSIS)
#include
#include
설명 (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_인터페이스 이름
ifr_name 내용 의 ioctl.
SIOCGIFINDEX
인터페이스의 색인 을 저장 하 다.
ifr_ifindex.
SIOCGIFFLAGS,
SIOCSIFFLAGS
장치 의 활동 표지 글 자 를 읽 거나 설정 합 니 다.
ifr_flags 는 다음 값 의 차단 위 치 를 포함 합 니 다:
장치 표지
IFF_UP
인터페이스 가 실행 중 입 니 다.
IFF_BROADCAST
유효한 방송 주소 집합.
IFF_DEBUG
내부 디 버 깅 표지.
IFF_LOOPBACK
이것 은 자동 고리 인터페이스 다.
IFF_POINTOPOINT
이것 은 점 에서 점 까지 의 링크 인터페이스 이다.
IFF_RUNNING
자원 이 분배 되 었 습 니 다.
IFF_NOARP
arp 프로 토 콜 이 없고 2 층 목적 주 소 를 설정 하지 않 았 습 니 다.
IFF_PROMISC
인 터 페 이 스 는 컴 팩 트 (promiscuous) 모드 입 니 다.
IFF_NOTRAILERS
trailer 사용 을 피하 세 요.
IFF_ALLMULTI
모든 그룹 방송 (multicast) 메 시 지 를 받 습 니 다.
IFF_MASTER
주 부하 균형 군 (bundle).
IFF_SLAVE
부하 균형 군 (bundle) 에서.
IFF_MULTICAST
멀티캐스트 지원.
IFF_PORTSEL
ifmap 를 통 해 미디어 (media) 형식 을 선택 할 수 있 습 니 다.
IFF_AUTOMEDIA
미디어 를 자동 으로 선택 합 니 다.
IFF_DYNAMIC
인터페이스 가 닫 혔 을 때 주 소 를 버 립 니 다.
활성 표지 글 자 를 설정 하 는 것 은 특권 작업 이지 만 모든 프로 세 스 가 표지 글 자 를 읽 을 수 있 습 니 다.
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_new name. 이것 은 특권 동작 입 니 다.
SIOCGIFCONF
인터페이스 주소 (전송 층) 목록 을 되 돌려 줍 니 다. 호환성 때문에 현재 AF 만 대표 합 니 다.INET 주소 입 니 다. 사용자 가 전송 합 니 다.
ifconf 구 조 는 ioctl 의 매개 변수 입 니 다.
ifc_req 포인터 지향 포함
ifreq 구조 배열, 그의 길 이 는 바이트 단위 로 저 장 됩 니 다.
ifc_len 에 있 습 니 다. 커 널 은 현재 L3 (3 층?) 인터페이스 주소 로 ifreqs 를 채 웁 니 다. 이 인터페이스 들 은 실행 중 입 니 다.
ifr_name 인터페이스 이름 저장 (eth 0: 1 등),
ifr_addr 저장 주소.
ifc_len 에서 실제 길 이 를 되 돌려 줍 니 다.만약 그 가 초기 길이 와 같다 면, 넘 침 을 표시 합 니 다. 사용 자 는 좀 큰 버퍼 를 바 꾸 어 다시 시도 해 야 합 니 다. 오류 가 발생 하지 않 았 을 때 ioctl 은 0 으로 돌아 갑 니 다. 그렇지 않 으 면 - 1 로 돌아 갑 니 다. 넘 침 은 오류 가 아 닙 니 다.
대부분의 프로 토 콜 은 자신의 ioctl 설정 프로 토 콜 의 특정한 인터페이스 작업 을 사용 합 니 다. 구체 적 인 상황 은 프로 토 콜 의 도움말 매 뉴 얼 을 참조 하 십시오. IP 주 소 를 설정 하려 면 ip (7) 를 참조 하 십시오.
또한, 일부 장 치 는 전용 ioctl 이 있 으 며, 여 기 는 서술 하지 않 습 니 다.
주의 (NOTE) 엄 밀 히 말 하면
SIOCGIFCONF 는 IP 를 대상 으로 하 는 것 으로
ip(7).
주의 (NOTE) 통과 가능
/proc/net/dev 주소 가 없 거나 없 는 것 을 보 았 습 니 다.
IFF_RUNNING 로고 의 인터페이스 이름.

좋은 웹페이지 즐겨찾기