Network Interface의 상태를 확인해야 하는데요..
글쓴이: hyper9 / 작성시간: 월, 2008/08/18 - 10:40오전
예를 들면 eth0가 현재 UP인지 DOWN인지를 인식해서
UP되었을 경우에 자동으로 packet을 보내는 일종의
script를 만들려고 합니다.
어떻게 eth0 또는 eth1등의 UP/DOWN상태를 알 수 있을까요?
/proc/아래를 읽어서 확인할 수 있는 방법이 있을까요?
아님 특정한 API를 사용해서 간단하게라도 Program을 짜는게
좋을까요?
비슷한 경험을 하신 분의 조언을 부탁드립니다 ~
감사합니당 ^^
Forums:
ethtool
# ethtool eth0 | grep 'Link detected'
처럼 하시면 될 것 같습니다.
음..
1. 그냥 socket 에 write 해보고, fail 이거나 timeout 이면 down 으로 간주..
2. ioctl 의 SIOCGIFFLAGS 를 사용해서, (ifr.ifr_flags & IFF_UP) 인지 확인하는 방법..
(lan unplugged 의 경우에는 디텍트 못하는 듯..)
3. ioctl 의 SIOCETHTOOL 을 사용해서, data 가 available 한지 확인하는 방법..
struct ethtool_value 의 cmd 에는 ETHTOOL_GLINK 를 넣고..
해당 구조체를 ifr.ifr_data 에 넣은 후에, ioctl 을 call 하면, 해당 구조체의 data 에..
link status 가 들어옵니다..
(up/down, plugged/unplugged 모두 탐지되나 구별은 안 됨)
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
댓글 달기