ioctl()를 이용하여 네트워크 인터페이스 정보 변경하는방법좀 알켜주세요.

devanix의 이미지

안녕하세요.

struct ifreq *ifr;
struct sockaddr_in *sin;
 
ioctl(fd, SIOCGIFADDR, ifr);
sin = (struct sockaddr_in*)&ifr->ifr_addr;

이런식으로 ioctl()를 이용하여 네트워크 인터페이스 정보를 얻어오는 법은 간단히 나마 알겠는데요
반대로 ioctl()를 이용하여 네트워크 인터페이스 정보를 바꾸는 법도 있을꺼 같은데 방법을 몰라
이렇케 글을 올려봅니다.

참고될만한 사이트라도 링크 시켜주세요!!

그럼좋은 하루되시고 친절한 답변 부탁드립니다.

kakapapa의 이미지

질문하신 분의 시스템에서는 파일 위치가 다를 수 있겠습니다만...

ioctl의 request 인수로 사용할 수 있는 define이 위 파일에 정의 되어있습니다.
ioctl + "특정 define"으로 구글링 등을 하시면 예제를 찾으실 수 있습니다.

swyeoun의 이미지

Sys IO Control + Get/Set + *

man ioctl_list 하시면 request 와 그에 필요한 자료구조 확인가능합니다

G 는 Get 이고
S 는 Set 입니다.