问题标签 [arp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
863 浏览

c++ - 在linux上用c ++进行arping

我想知道是否有人知道用 c++ 而不是 c 编写的 arping api 或包装器?我已经查看了 libpcap 库,但如果可能的话,我想要一个 c++ 替代品

http://www.tcpdump.org/pcap3_man.html

ARP 的程序化使用

谢谢

0 投票
2 回答
4197 浏览

linux - 我自己制作的 Linux 网桥:arp 请求永远不会成功

我使用我的 Boost.Asio 扩展编写了一个桥接器(第 2 层交换机)。我们可以轻松地制作满足其类型要求的其他套接字、端点和协议。我的扩展使用带有AF_PACKET,SOCK_RAW和的 linux 数据包套接字htons(ETH_P_ALL)man 7 packet有关数据包套接字的更多信息,请参阅)。

这是一个解释我的桥如何工作的示例:

网桥连接网络接口(例如 eth0)IF1 和 IF2,因此 PC1 可以通过在 PC2 上运行的网桥与 PC3 通信。连接接口的方式是将接收到的数据包从 IF1 发送到 IF2(反之亦然)

我的网桥按预期在有线连接下工作,但在无线连接下不起作用。所以我试图找出导致这个问题的原因,我发现 ARP 请求从未成功。

导致此问题的实际环境是:

例如,在上述环境下,现在 PC1 尝试向 router1 发送 ping(ICMP) 数据包。要将其发送到 PC3,PC1 必须知道 router1 的 MAC 地址,因此 PC1 向 PC1 发送 ARP 请求,FF:FF:FF:FF:FF:FF而我在 PC2 上运行的网桥从 eth0 接收它并将其发送到 wlan0,但 router1 从不向 PC1 发送 arp 回复。

注意:SOCK_RAW 数据包传入和传出设备驱动程序,数据包数据没有任何变化。(引用自数据包的手册页)

我应该怎么做才能让 PC1 与 router1 通信?
谢谢你。

编辑:
这是我的 Boost.Asio 扩展。
github:pfpacket/libarex
这是我上面使用的桥。
libarex/example/layer2_switch/interface_bridge.cpp

0 投票
1 回答
2302 浏览

linux - 如何查询特定邻居的 IPv6 NDP(邻居发现协议)表

我正在使用 Linux 并试图弄清楚如何(通过 API)查询 NDP 表以获取特定条目。到目前为止,我发现的唯一示例(在 iproute2 的源代码中)使用 Netlink 并获取整个表。有没有办法在特定接口上查询 Netlink 以获取特定 IPv6 地址?或者有没有与使用 Netlink 不同的方法,我应该这样做?

0 投票
1 回答
4426 浏览

networking - ESET - 网络中的 ARP 缓存中毒和相同 IP

我的 ESET SS5 防火墙在过去 24 小时内不断检测到相同的 IP 地址和 ARP 缓存中毒攻击(每 2 分钟一次)

我对 ARP 缓存中毒攻击进行了一些研究,例如如何将其用作 MiM 并将其用作默认网关

所以我安装了 Wireshark 并开始捕获网络...... 90% 的捕获记录是从不同来源到不同目的地的 ARP 广播数据包。我(从计算机网络教科书)了解到现代 ISP 不允许广播数据包,但有趣的是,90% 的捕获记录是 ARP 数据包。此外,“默认网关”通常是局域网中的路由器/交换机,那么为什么不同的计算机要求不同的 IP 地址“以它们的 MAC 地址响应”?

如果这是一个有网络打印机的联网区域(一家公司),那么通过 ARP 请求广播并询问谁拥有这个 IP 可能是合理的。但是在这种情况下,除非出于某种欺骗/黑客目的,否则为什么有人需要特定的 IP 地址。

这些是一直困扰着我的要点..以下是问题

  1. ISP 是否允许广播 ARP 数据包?
  2. ARP 请求局域网中其他 IP 的 IP 地址(同一子网 183.82.xx.xx )是否感染了导致此问题的病毒?
  3. 如果没有防火墙,结果会是什么?- // 虽然很蹩脚但想知道

我对网络和黑客的了解是半生不熟(仍在学习过程中)。

0 投票
1 回答
787 浏览

java - Winpcap 数据包转发。Java 包装器

我正在尝试构建一个能够在基于交换机的 LAN 中嗅探目标主机流量的 winpcap 应用程序。

为此,我正在尝试执行 arp 欺骗。这样,目标主机和逃亡者之间的消息将通过我发送,然后我将能够嗅探它们。

我知道欺骗是如何工作的,我必须发送哪些 arp 数据包以及如何发送它们。问题在于转发的东西:默认情况下,我的机器会在到达时丢弃数据包,因为它们不是发往我的 IP 地址的。

我已阅读有关 IPEnableRouter Windows 注册表值的信息,但我更喜欢一些代码来获取它。

我一直在为 WinPcap 使用 Java Wrapper 库(jNetPcap、Jpcap),但我可以使用其他语言。两台计算机都安装了 Windows Vista。

0 投票
1 回答
107 浏览

c - 如何从C中的数据包头数据中获取参与ARP的机器的MAC和IP地址?

谢谢阅读,

我正在进行一项家庭作业,除其他外,我需要根据我所捕获的数据包确定远程机器的 MAC 和 IP 地址。使用 pcap_loop 函数,我需要找到正确的结构(提供此信息的 ARP 标头)相对于指向数据包开头的指针(在我的回调函数中以 u_char* 给出)的位置。

我无法在线找到有关如何获取与数据包相关的结构的信息,例如具有地址的 ether_arp。如果您能指出正确的方向,那将非常有帮助 - 正如我所提到的,这是家庭作业,所以我不是在寻找完整的答案。

再次感谢你的帮助!

0 投票
3 回答
7296 浏览

.net - 托管代码中的 ARP 请求

我正在尝试利用 (vb) .NET 中 ARP 协议的强大功能来构建家庭 LAN 上所有联网设备及其硬件 (MAC) 地址的列表。我已经想出了如何计算子网上的所有 IP 地址,但我一直在寻找一种干净的方法来发送 ARP 请求并读取响应。

请注意,所有联网设备都包括非 Windows 设备(例如智能手机)。这意味着WMI 是不可能的

现在我不知道哪种方式更麻烦:A)将本机IP 助手API 包装在托管代码中以使用其 SendArp 方法,或 B)向每个主机发送 ping 请求以填充 ARP 缓存,然后解析输出arp.exe -a

有谁知道只使用托管代码来处理 ARP 请求/响应的方法?使用套接字对象和一点点魔法来实现似乎并不难,但我找不到任何提供 ARP API 的第三方网络库。恐怕我没有足够的知识来自己创造一个。

0 投票
1 回答
2177 浏览

networking - ARP REQUEST 数据包中使用的发送方 IP 地址是什么?

所以在一个 ARP 请求包中,我们有“谁有 192.168.1.1?告诉 192.168.1.143”。然而,回复不是“发送”到 IP 地址 192.168.1.143,而是发送到与其关联的 MAC 地址。获取发件人 IP 地址的目的是什么?

谢谢。

0 投票
7 回答
20746 浏览

linux - 有没有更好的方法从 arp 表中获取 mac 地址?

我想通过使用 ip 地址从 arp 表中获取一个 mac 地址。目前我正在使用这个命令

这个命令打印我想要的。但我对此并不满意,我想知道是否有任何内置方式或更稳定的方式来做到这一点。

0 投票
1 回答
528 浏览

c# - ASP.NET 中是否有从 IP 地址解析 MAC 地址的内置函数

我即将开始开发一个简单的内部 Web 应用程序来记录我办公室的访客。基本上,他们将阅读 AUP,然后输入他们的姓名以表示确认。该应用程序还将使用 Request.UserHostAddress() 记录访问者的 IP。除了记录 IP 之外,我还想运行一个脚本来使用从应用程序获得的 IP 进行 DHCP 保留,但我还需要拥有 MAC 地址。这个应用程序只能在一个子网中使用,我计划为访问者使用一个小的 DHCP 范围。

我可以使用任何内置功能通过 ARP 从 IP 解析 MAC 地址吗?如果有现有功能,我宁愿不必使用解决方法。


好的,作为参考,这就是我所做的:

然后我用

请注意,这仅适用于 Web 服务器保证与主机位于同一子网中。此外,如果您决定使用 Visual Web Developer 进行测试,请注意测试服务器将返回 UserHostAddress 作为 ::1(IPv6 环回地址)。

但回到主要问题:还有其他方法吗?