Linux에서 사용 된 포트 및 해당 상태는 어떻게 얻을 수 있습니까? 기본적으로, 그 모든 것 netstat
할 수 있지만 C?사용 된 포트 및 상태 가져 오기
답변
netstat 실행시 strace을 실행하면 시스템 호출자와 해당 인수가 표시됩니다.
$ strace netstat
...
open("/proc/net/tcp6", O_RDONLY) = 3
open("/proc/net/udp", O_RDONLY) = 3
...
이 종종 프로그램을하고있다거나 통화가하게하고 당신이 필요로하는 모든가 볼을 부르는 발견하는 경우 때때로 소스에서 찾고보다 쉽게 할 수있는 것을 알 수있는 좋은 방법입니다 맨 페이지.
글쎄, "netstat이 할 수있는 모든 것"은 netstat
으로 시작할 수 있습니다. 소스 코드는 여기에 있습니다 :
netstat
가하는 일의 대부분은, 그것은
/proc
파일 시스템에서 가져 주목해야한다
; *_do_one
루틴은 "흥미로운"용기를 대부분 가지고 있습니다.
나는 그것이 순진한 질문이 아니란 뜻으로, 나는 그저 일련의 메소드가 있기를 바랐지만'/ proc'에서 파일을 읽는다는 사실에 놀랐다 ... 나쁜 전술이 아니다. 프로그램을 위해서? 예를 들어'/ proc/uptime'을 읽지 않고 가동 시간을 얻으려면'sysinfo()'를 사용합니다. – Doddy
@bean :'/ proc/uptime'은 표준 * 파일 *이 아니지만 가동 시간 (텍스트 형식)을 제공하는 커널의 장치 드라이버에 직접 액세스한다는 것을 기억하십시오. '/ proc'의 나머지 부분도 같은 방식으로 작동합니다. –
일반적으로'/ proc'와'/ sys' 파일 시스템은 많은 Linux 커널 서브 시스템에 선호되는 인터페이스입니다. 중복 기능을 제공하는 라이브러리 함수가있는 경우, 종종 (항상 그런 것은 아님) libc에 proc 액세스에 대한 래퍼로 구현됩니다. 나는'sysinfo'가 그런 호출이지만 man 페이지가 proc (5)에 링크되어 있다면, 알지 못합니다. – BRFennPocock
- 1. .NET - 프로토콜, 호스트 및 포트 가져 오기
- 2. ajaxcalls 계산 및 상태 가져 오기
- 3. SW3 가져 오기 및 사용
- 4. 모나드 상태 가져 오기
- 5. ActionExecutingContext에서 시작 포트 가져 오기?
- 6. Application_Start에서 서버 포트 가져 오기
- 7. 클라이언트 컴퓨터 상태 가져 오기 하드웨어 상태
- 8. Jquery로 세션 상태 가져 오기
- 9. 연결 호출 후 클라이언트 포트 가져 오기
- 10. Delphi TISAPIApplication에서 포트/URL 데이터 가져 오기 :
- 11. tcp 포트 웹 사이트 가져 오기
- 12. Google 트래픽 상태 가져 오기
- 13. Listview의 스크롤 상태 가져 오기
- 14. 대표 스레드 상태 가져 오기
- 15. 상단의 스레드 상태 가져 오기
- 16. J2ME에서 배터리 상태 가져 오기
- 17. 포트 가져 오기 액터가 수신 대기 중
- 18. ListView에서 체크 된 항목 가져 오기 및 사용
- 19. 응용 프로그램에 전달 된 InputStream 가져 오기 및 사용
- 20. Type에 사용 된 어셈블리 경로 가져 오기
- 21. 이전에 사용 된 요소의 Jquery 가져 오기
- 22. 직렬 포트 메모리 명령 가져 오기
- 23. NSURLConnection을 사용할 때 열린 포트 가져 오기
- 24. 연결된 TcpClient의 원격 포트 가져 오기
- 25. 클라이언트 IP 주소 가져 오기 : 포트 (System.Runtime.Remoting.Channels)
- 26. 원격 실행 프로세스에서 상태 가져 오기
- 27. 여러 MYSQLI 사용 준비 및 가져 오기
- 28. Eclipse에서 JAR 가져 오기 및 사용
- 29. BNF 문법에서 상태 시스템 가져 오기
- 30. 파이썬 시리얼 포트 상태
netstat이 C로 작성되지 않았다고 생각합니까? http://src.gnu-darwin.org/src/usr.bin/systat/netstat.c.html 또는 code.turnkeylinux.org/busybox/networking/netstat.c – fvu
또한'netstat'가 이미 여러분에게 왜 그것을 다시 작성해야합니까? – dreamlax
나는 netstat을 다시 쓰려고하지 않고 단지 내 자신의 프로그램 중 하나에서 비슷한 기능을 가지고있다. – Doddy