2013-11-14 2 views
1

광산 라우터의 웹 인터페이스가 사용 중일 때 일부 도우미 프로세스를 시작하고 잠시 후 종료해야합니다. RAM을 사용하지 않을 때).C에서 다른 리눅스 프로세스의 네트워크 활동을 보는 방법

다른 프로세스 (서버)가 네트워크 연결을 수락하면 어떤 방법으로 (prace() 제외) 알 수 있습니까?

/proc/pidof httpd/fd에있는 소켓 inode에 대해/proc/net/tcp를 구문 분석하려고 시도했지만 매우 신뢰할 수없고 전체 웹 페이스를 다시로드하지만 탐색하지는 않습니다. 여기

소스 나는 이런 식으로 기록됩니다 https://dl.dropboxusercontent.com/u/100376233/zyxel/nethelperd.tar.bz2

을 OR :이 다른 콜라고하면 추적 과정을 방해 만의 ptrace()를 사용하여() 시스템 콜을 받아 캐치하지 수있는 방법이있다?

답변

2

tcp port X과 같은 필터를 사용하여 libpcap을 사용하는 것이 좋습니다. 여기서 X은 웹 인터페이스를 호스팅하는 포트입니다. 패킷을받을 때마다 타이머를 재설정 할 수 있습니다. 패킷을 받기 전에 타이머가 작동하면 서비스를 종료 할 수 있습니다. 또한 전체 패킷을 캡처하지 않기 때문에 오버 헤드를 줄일 수 있습니다. libpcap을 사용하면 패킷 당 캡처 할 최대 바이트 수를 지정할 수 있습니다.