Articles of arp

编程使用ARP

我需要一些可在Linux下编译的C或C ++代码,以便能够获取任意数量的远程主机的IP地址列表,并为每个主机获取以太网MAC地址。 这些主机可能在同一个子网上,或者它们可能在路由器的不同子网上。 如果某些或全部远程主机的MAC地址是路由器上接口的地址,那么可以。 最后,我想把IP地址和MAC地址交给FPGA,FPGA将使用这些信息格式化并通过以太网将UDP / IP数据包发送到主机。 显然,FPGA也会被赋予自己的MAC地址和IP地址来填充数据包中的源MAC和源IP地址。 是否有一些我可以指出的代码,可以创build和广播ARP数据包到这些远程机器,并接收ARP响应数据包,使目标MAC地址可以被提取?

为什么不是由Linux TAP设备处理的ARP或ICMPv6数据包

我打开使用TAP设备 p->fd = open("/dev/net/tun", O_RDWR); // skipping error handling code ifr.ifr_flags = IFF_TAP | IFF_ONE_QUEUE | IFF_NO_PI; strncpy(ifr.ifr_name, p->name, IFNAMSIZ-1); result = ioctl(p->fd, TUNSETIFF, &ifr); // skipping error handling and setting ipv4 address & netmask code ifr.ifr_flags = (IFF_UP | IFF_RUNNING); result = ioctl(dummySock, SIOCSIFFLAGS, &ifr); 我面临的问题是,当一个应用程序(如mozilla)希望通过tap设备发送一个数据包时,它需要获取dst的mac地址。 所以内核发出一个ARP请求。 我正在写的应用程序转发arp请求(通过物理eth设备上的原始套接字)并获得arp答复。 这个ARP响应被转发回tap设备,但内核拒绝接受这个。 如果我手动添加一个ARP条目,没有生成ARP请求,并且有双向IP数据包交换(mozilla很高兴)。 Wireshark能够接收数据包并且没有发现错误。 ICMPv6数据包(邻居请求和广告)也是如此。 在设备上侦听的任何应用程序都会保持数据包的完整。 但内核不处理它的ARP […]

在Linux上使用C ++parsingIP地址的MAC地址

我需要生成一个包含目标MAC地址的以太网报头(由于libnfnetlink在预发送之前只给出IP报头),因此出接口号也是已知的,所以可以在正确的networking中进行查找。 从IP地址parsingMAC地址的库/函数是什么?

configurationARP老化超时

我正在尝试configurationARP老化超时。 我想我应该设置/proc/sys/net/ipv4/neigh/default/base_reachable_time_ms到所需的超时时间。 但是,尽pipe我将其设置为30000ms(30秒),但仍然需要10分钟才能从ARPcaching中删除条目。 在阅读了几篇文章之后,我发现有几个设置会影响超时: /proc/sys/net/ipv4/neigh/default/gc_interval /proc/sys/net/ipv4/neigh/default/gc_stale_time /proc/sys/net/ipv4/route/gc_interval /proc/sys/net/ipv4/route/gc_timeout 我不知道该编程什么。 gc_timeout在Linux中默认为5分钟。 我改变了30秒,但仍然没有看到条目被删除base_reachable_time/2或3*base_reachable_time/2 。 如何设置ARPcaching的到期时间?

从MAC地址获取IP。 ARP – 一个不显示设备

我试图编写一个batch file,当它连接到networking(Tenda WiFi路由器)时,应该find我的Android手机的dynamic分配IP。 所以我正在尝试arp -a并search手机的MAC地址,以便从表中获取IP。 C:\Users\Leeroy>arp -a Interface: 192.168.0.100 — 0xb Internet Address Physical Address Type 192.168.0.1 c8-3a-35-35-f6-68 dynamic 192.168.0.255 ff-ff-ff-ff-ff-ff static 224.0.0.22 01-00-5e-00-00-16 static 224.0.0.251 01-00-5e-00-00-fb static 224.0.0.252 01-00-5e-00-00-fc static 239.255.255.250 01-00-5e-7f-ff-fa static 255.255.255.255 ff-ff-ff-ff-ff-ff static 问题是它不出现在表格中! 我尝试ping 192.168.0.255但它仍然不显示。 我尝试从手机的浏览器请求192.168.0.100(我的台式电脑的IP),这足以把手机放在雷达上。 但是我没有select手动做,每次我想它出现在ARP表。 我如何让Android手机出现在ARP表中(除了连​​接到WiFi之外,没有做任何事情)? 解决:解决与平。 这不会超过一两秒钟。 编辑2:更新一些。 这是最后的batch file: @echo off :top :: Loop through arp […]