2009-05-08 5 views

답변

16

열기를 감사하고 다음 읽기 :

/proc/net/tcp을 -

/proc/net/udp 열려있는 TCP 소켓

목록 - 오픈 UDP 소켓

의 목록

/proc/net/raw - 모든 목록을 "raw"소켓

이들은 "일반"파일과 비슷합니다. filehandle을 사용하면 각 소켓에 대해 필요한 모든 정보를 얻을 수 있습니다.

+3

또한/proc 디렉토리/그물/유닉스 유닉스 도메인 소켓을 나열 sockstat.c을 구문 분석하는 방법을 보여줍니다 수 있습니다. – zoom23

0

원시 데이터는/proc/net/tcp,/proc/net/udp 등에서 찾을 수 있습니다. 첫 번째 줄의 헤더를 참조하여 간결한 설명을 찾으십시오. 디렉토리/proc 디렉토리/셀프에서

3

/당신에게 열려있는 모든 파일 설명을주고 가짜 심볼릭 링크가 디스크립터에 - 소켓 같은 것을 제공 :

lrwx------ 1 root root 64 2009-05-08 07:45 4 -> socket:[4921] 
lrwx------ 1 root root 64 2009-05-08 07:45 5 -> socket:[4918] 
lrwx------ 1 root root 64 2009-05-08 07:45 6 -> socket:[5395] 

, 그들이했던 opendir 사용 readdir을()를 반복하고 readlink를을 사용하여 심문을()

FD4가 소켓이라는 것을 알고 있다면 getsockname()을 호출하여 바인딩 된 경우 로컬 주소 패밀리, 주소 등을 얻을 수 있습니다.

+0

이것은 모든 소켓에서 작동하지 않습니다. 대부분 여기에 제 터미널이 있습니다. 여러 연결을 열면 모든 소켓이 표시되지는 않습니다. 셰인 메이슨 (Shane Mason)이 지적한 것 이외에 가지고 있지 않은 좋은 도구. 고맙습니다. –

4

이 프로그램은 당신을 위해 유용하고/그물/proc 디렉토리/* 파일

+0

예를 들어 주셔서 감사합니다. 나는/proc/self/fd를 거쳐 어떤 링크가 소켓인지 확인하고 그런 식으로리스트를 생성하려고했다. 내 솔루션과 함께 업데이트를 게시하겠습니다. 다시 한 번 감사드립니다. –

+0

링크가 더 이상 작동하지 않는 것으로 보이지만 Google에서 여러 복사본을 검색합니다. –

관련 문제