[英]How can I extract mac address from a icmp reply in c on linux
我试图在发送原始数据包后在交换环境中找出机器的mac地址。 我正在尝试实现traceroute命令。 我想知道何时收到ICMP超时消息,如何提取该机器的mac地址。 我是一个新的网络编程,所以很困惑什么socket调用将帮助我提取mac地址。
谢谢 。
通常,在Internet上,您甚至不知道主机用于传输数据包的媒体。 假设使用PPP协议通过串行rs-232-C链路连接远程主机。 它没有mac地址。 例如,如果主机使用令牌环接口或帧中继链路,也会发生这种情况。 这使得完全确定主机的远程mac地址是本地问题。 通常,当您通过以太网从远程站点获取数据包时,您在数据包中获取的源mac地址是最后一个将您链接到Internet的路由器之一,而不是发送IP数据包的原始主机之一。 在通过avian运营商的IP上的RFC(rfc1149,rfc2549和rfc6214)中,用于传输的媒体不允许使用mac地址(链接地址,如果在pidgeon上可行,可能就是它的名字)
如果你想阅读有关交换机的以太网网络上的traceroute,也许你必须看一下IEEE802.1ag,它有一个规范来对交换机进行tracerouting(tracelink服务),但我认为远远超出了这个答案的范围。
与Masoud M说的一样,您只能获取本地网络上的计算机的MAC地址。 也就是说,您可以解析输出arp
命令,找到给定本地网络机器IP地址的MAC地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.