PacketConn.ReadFrom()可以提供ControlMessage包含輸入接口的ifIndex。UDPConn.ReadFromUDP()返回net.UDPAddr數據報的源套接字地址(srcIP+srcPort)。但是,如何獲取兩個信息:輸入接口 ifIndex AND遠程套接字地址 (srcIP+srcPort) ?編輯:我已經解決了一個問題:https : //github.com/golang/go/issues/14362
1 回答

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
當底層套接字是 UDP 時,.ReadFrom() 返回一個 *net.UDPAddr 對象作為 net.Addr 結果。
因此,可以使用 .ReadFrom() 獲取輸入接口(如 ifIndex)和遠程套接字完整端點地址(net.UDPAddr 中的 IPaddr+端口)。
// c is *ipv4.PacketConn
n, cm, srcAddr, err := c.ReadFrom(buf)
switch srcAddr.(type) {
case *net.UDPAddr:
udpAddr := srcAddr.(*net.UDPAddr)
}
- 1 回答
- 0 關注
- 313 瀏覽
添加回答
舉報
0/150
提交
取消