네트워크정보 수집방법.. 해메고 있어요 도움 부탁드려요 [Linux]
각 이더넷 장치에 정보를 수집하는 소스를 짜보고 있는데요.
ioctl 을 사용하여 정보를 수집하는건 참 편리하게 되어있어 다행이였습니다.
문제점은 SIOCGIFCONF 인자값으로 사용하는 경우 현재 작동중인 장치만 정보를 가져오게 되더군요.
활성화 되지 않은 상태의 이더넷 장치의 값도 가져와야 하는데..
단순 파일오픈만으로는 쉽게 값이 구해지지 않아 도움을 부탁드립니다.
제일 중요한점은
이더넷 장치는 살아있지만 LAN선이 연결되어 있지 않은 상태의 값을 구해야 하거든요.
아래이더넷 장치는 LAN선이 연결되지 않은 상태이고요.
eth0 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:9d
inet6 addr: xxxx::xxx:xxxx:xxx:929d/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
이것은 현재 연결이 되어있는 상태입니다.
wlan0 Link encap:Ethernet HWaddr 00:1b:xx:xx:xx:xx
inet addr:192.168.0.62 Bcast:192.xxx.0.255 Mask:255.255.255.0
inet6 addr: fe80::xx:xxxx:xxxx:986/64 Scope:Link
UP BROADCAST (RUNNING) MULTICAST MTU:1500 Metric:1
위와 같이 LAN선 연결상태부분을 SIOCGIFFLAGS를 이용한 플래그값 상태에서 RUNNING 이라는 값으로 상태 확인을 하게 되더군요.
자료를 찾아보면
/proc/net/dev 를 파일오픈 하여 전체 장치를 읽어오고 상태를 확인및 정보를 수집가능하다고 하는데.
소스만 짜면 저는 현재 작동중인 장치만 가져오고... 쉽지가 않더군요;;
힌트나 좋은 설명이 되어있는 선배님 블로그..질의응답을 구합니다.
감사합니다.


댓글 달기