2016-06-09 1 views
0

컴퓨터에서 수행 한 새로운 IPv4 연결을 모니터링해야합니다. 필요한 정보는 연결을 만드는 프로세스 ID와 프로세스가 연결되는 IP 주소입니다. 나는 새로운 연결이 발견 되 자마자 호출되는 콜백 함수가 필요할 것이다.C#에서 새 IPv4 연결을 모니터링하는 방법

저는 Microsoft-Windows-Kernel-Network에서 ETW를 사용해 보았습니다.하지만 IP 주소로 다시 매핑 할 수없는 일부 daddr 및 saddr의 정수 표현 만 가져옵니다. 어떤 도움을 주시면 감사하겠습니다.

+0

TraceEvent 및 Microsoft-Windows-TCPIP 공급자를 사용하여 약간 연주 했습니까? 작동합니까? – magicandre1981

답변

1

Microsoft-Windows-TCPIP 공급자를 사용해야합니다. 당신은 실시간 세션을 만들 TraceEvent을 사용할 수 있으며, TraceEvent는 TcpIpConnectTraceData가 당신은 ProcessName과은 ProcessID에 액세스 할 수 TraceEvent 클래스에서 상속되는

_kernelTraceEventParser = new KernelTraceEventParser(_source); 
_kernelTraceEventParser.TcpIpConnect += KernelParserOnTcpIpConnect; 



private void KernelParserOnTcpIpConnect(TcpIpConnectTraceData tcpIpConnectTraceData) 
{ 
    lokalAddress = tcpIpConnectTraceData.saddr + ":" + tcpIpConnectTraceData.sport; 
    serverAddress = tcpIpConnectTraceData.daddr + ":" + tcpIpConnectTraceData.dport; 
} 

때문에 IP 데이터를 분석 할 수있는 KernelSourceParser 있습니다.

관련 문제