获取活动 udp 连接的目标 IP/端口?

Posted

技术标签:

【中文标题】获取活动 udp 连接的目标 IP/端口?【英文标题】:Get Destination Ip/Port of active udp Connection? 【发布时间】:2013-07-19 12:21:33 【问题描述】:

我能够使用 iphlpapi 检索活动的 TCP 和 UDP 连接。 TCP 连接显示源信息(IP/端口)、目标信息(IP/端口)、状态和进程 ID。 但是对于 UDP 连接,它没有提供远程 IP 和端口。那是我想要得到的。 在 Delphi 或 c++ 中使用源信息或进程 ID 获取目标信息的任何方式。

【问题讨论】:

你在写netstat之类的应用吗? UDP 是无连接的——因此查看远程 IP/端口的唯一方法是捕获数据包。您确定您不是在查看 UDP 侦听器吗? @afrazier.. 不,我不是在寻找 Udp 监听器。我会尝试抓包。任何帮助。 【参考方案1】:

UDP 是一种无连接协议。只能获取已经打开的本地端口。

更新: 这适用于静态查看端口使用情况。但是,如果您有活动的 UDP 流量,您仍然可以检索远程端点。

用户 Ishmeet 在 cmets 中建议使用 uIP 或 LwIP。

UDP - Wikipedia

Connectionless Protocol - Wikipedia

【讨论】:

不,你可以得到IP地址,我在uIP上做过,在LwIP上也做过,在回调函数中你从收到的数据包中收到IP地址和端口号 好的,我同意...如果您有活跃的流量,您可以获得发件人端点。但是简单的端口使用信息是不够的。 void udp_recv(struct udp_pcb * pcb, void (* recv)(void * arg, struct udp_pcb * upcb, struct pbuf * p, struct ip_addr * addr, u16_t port), void * recv_arg) - ->lwip.wikia.com/wiki/Raw/UDP

以上是关于获取活动 udp 连接的目标 IP/端口?的主要内容,如果未能解决你的问题,请参考以下文章

远程检查 IP 端口状态

Socket网络编程学习笔记 UDP辅助TCP实现点对点传输案例 -- UDP广播搜索获取IP/Port

netstat命令不打印提示信息

白话浅说TCP/UDP面向连接,面向无连接的区别

测试IP端口是不是可以连接

传输层 TCP UDP