gpt4 book ai didi

c - 在C中从IP获取MAC地址

转载 作者:太空宇宙 更新时间:2023-11-04 01:28:52 24 4
gpt4 key购买 nike

当我的用户提供本地和远程 IP:Port 对时,我需要提供一个函数来组装要发送的 UDP 数据包。我有一个以太网卡 API,它为我发送一个以太网帧,我是否必须填充一个包含 MAC 地址、IP 和 UDP 的完整以太网帧

问题:给定一个Internet上的IPV4地址,如何找出该IP对应的MAC地址以便填入以太网帧头。我如何使用 C 从路由器的 ARP 表中查找它。我应该向我的路由器发送一个 ARP 数据包吗(我也不知道该怎么做)。

当我调用 UDP sendto() 时,谁在以太网帧中填充 MAC 地址?这是如何实现的?

最佳答案

简短的回答是:你不能。

MAC地址只在本地网络上有意义。无法询问远程 IPv4 端点(不在您的网络上)它的 MAC 地址是什么。如果要将 UDP 数据包发送到远程端点,请使用操作系统套接字接口(interface)发送到该 IPv4 地址。它将处理细节。

根据您在下面的评论,如果您有发送以太网帧的接口(interface),那么您将需要查找本地 IPv4 网关地址的 MAC 地址(通过发送 ARP 请求)。网关的 MAC 地址是您放入以太网帧中的地址。目标端点的 MAC 地址进入以太网帧。

关于c - 在C中从IP获取MAC地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26641885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com