2012-01-13 3 views
1

C#에서 ICMPv6 에코 요청 메시지를 보내려면 어떻게해야합니까? 또한 IPv6 (IPv6 패킷에 DF 플래그 없음) 및 패킷 손실을 사용하여 실제 대역폭, RTT, MTU를 경로에 지정해야합니다.ICMPv6 에코 요청 보내기

답변

2

System.Net.NetworkInformation.Ping 클래스를 사용해 보셨습니까? Send() 메서드는 상태 및 왕복 시간이 포함 된 PingReply 개체를 반환합니다. 다른 정보를 빼낼 수 있는지 확실하지 않습니다.

Ping은 Icmp6SendEcho2와 같은 Windows IP 도우미 기능 (http://msdn.microsoft.com/en-us/library/windows/desktop/aa366071%28v=VS.85%29.aspx)을 사용합니다.

있는지 아니이 있다면 -

[DllImport("iphlpapi.dll", SetLastError = true)] 
internal static uint Icmp6SendEcho2(SafeCloseIcmpHandle icmpHandle, SafeWaitHandle Event, IntPtr apcRoutine, IntPtr apcContext, byte[] sourceSocketAddress, byte[] destSocketAddress, [In] SafeLocalFree data, ushort dataSize, ref IPOptions options, SafeLocalFree replyBuffer, uint replySize, uint timeout); 

(http://msdn.microsoft.com/en-us/library/windows/desktop/bb485842%28v=VS.85%29.aspx 'replyBuffer'는 ICMPV6_ECHO_REPLY 구조체입니다) : 당신은 핑 래퍼 클래스는 예를 들어, 바로 이러한 기능을 사용하여 노출보다 더 많은 정보를 얻을 수 있습니다 방법은 MTU 또는 진정한 총 대역폭을 얻을 수 있지만 잘하면 이것은 적어도 시작입니다!