如何从活动的udp连接获取远程IP地址和端口?

时间:2019-04-09 14:43:12

标签: c# c++ winapi udp iphelper

我正在处理图形化Windows应用程序。因此,首选使用c ++和c#的解决方案。

对于我的应用程序,我需要从特定进程的活动udp连接中获取远程地址和端口。

我尝试了IP Helper API,但是UDP的方法没有提供远程地址和端口。

我已经看到了这些帖子Get Destination Ip/Port of active udp Connection?Remote address of active UDP connections in Windows using IP Helper

我了解为什么IP Helper无法完成工作(udp是无连接的并且需要捕获数据包),但是我没有发现具体的实现方法。

您是否已准备好使用解决方案或接近解决方案?

1 个答案:

答案 0 :(得分:0)

您已经发现UDP是无连接的,因此OS不会像TCP那样跟踪远程方信息。与TCP套接字不同,UDP套接字可以一次与多个远程方通信,其中sendto()指定目标IP /端口,recvfrom()报告发送者的IP /端口。

  

我了解为什么IP Helper无法完成工作(udp是无连接的并且需要捕获数据包),但是我没有发现具体的实现方法。

您需要使用数据包捕获库,例如libpcap,并手动跟踪看到的外发数据包的ips /端口。