问题标签 [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.
c++ - 在linux上用c ++进行arping
我想知道是否有人知道用 c++ 而不是 c 编写的 arping api 或包装器?我已经查看了 libpcap 库,但如果可能的话,我想要一个 c++ 替代品
http://www.tcpdump.org/pcap3_man.html
谢谢
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
linux - 如何查询特定邻居的 IPv6 NDP(邻居发现协议)表
我正在使用 Linux 并试图弄清楚如何(通过 API)查询 NDP 表以获取特定条目。到目前为止,我发现的唯一示例(在 iproute2 的源代码中)使用 Netlink 并获取整个表。有没有办法在特定接口上查询 Netlink 以获取特定 IPv6 地址?或者有没有与使用 Netlink 不同的方法,我应该这样做?
networking - ESET - 网络中的 ARP 缓存中毒和相同 IP
我的 ESET SS5 防火墙在过去 24 小时内不断检测到相同的 IP 地址和 ARP 缓存中毒攻击(每 2 分钟一次)
我对 ARP 缓存中毒攻击进行了一些研究,例如如何将其用作 MiM 并将其用作默认网关
所以我安装了 Wireshark 并开始捕获网络...... 90% 的捕获记录是从不同来源到不同目的地的 ARP 广播数据包。我(从计算机网络教科书)了解到现代 ISP 不允许广播数据包,但有趣的是,90% 的捕获记录是 ARP 数据包。此外,“默认网关”通常是局域网中的路由器/交换机,那么为什么不同的计算机要求不同的 IP 地址“以它们的 MAC 地址响应”?
如果这是一个有网络打印机的联网区域(一家公司),那么通过 ARP 请求广播并询问谁拥有这个 IP 可能是合理的。但是在这种情况下,除非出于某种欺骗/黑客目的,否则为什么有人需要特定的 IP 地址。
这些是一直困扰着我的要点..以下是问题
- ISP 是否允许广播 ARP 数据包?
- ARP 请求局域网中其他 IP 的 IP 地址(同一子网 183.82.xx.xx )是否感染了导致此问题的病毒?
- 如果没有防火墙,结果会是什么?- // 虽然很蹩脚但想知道
我对网络和黑客的了解是半生不熟(仍在学习过程中)。
java - Winpcap 数据包转发。Java 包装器
我正在尝试构建一个能够在基于交换机的 LAN 中嗅探目标主机流量的 winpcap 应用程序。
为此,我正在尝试执行 arp 欺骗。这样,目标主机和逃亡者之间的消息将通过我发送,然后我将能够嗅探它们。
我知道欺骗是如何工作的,我必须发送哪些 arp 数据包以及如何发送它们。问题在于转发的东西:默认情况下,我的机器会在到达时丢弃数据包,因为它们不是发往我的 IP 地址的。
我已阅读有关 IPEnableRouter Windows 注册表值的信息,但我更喜欢一些代码来获取它。
我一直在为 WinPcap 使用 Java Wrapper 库(jNetPcap、Jpcap),但我可以使用其他语言。两台计算机都安装了 Windows Vista。
c - 如何从C中的数据包头数据中获取参与ARP的机器的MAC和IP地址?
谢谢阅读,
我正在进行一项家庭作业,除其他外,我需要根据我所捕获的数据包确定远程机器的 MAC 和 IP 地址。使用 pcap_loop 函数,我需要找到正确的结构(提供此信息的 ARP 标头)相对于指向数据包开头的指针(在我的回调函数中以 u_char* 给出)的位置。
我无法在线找到有关如何获取与数据包相关的结构的信息,例如具有地址的 ether_arp。如果您能指出正确的方向,那将非常有帮助 - 正如我所提到的,这是家庭作业,所以我不是在寻找完整的答案。
再次感谢你的帮助!
.net - 托管代码中的 ARP 请求
我正在尝试利用 (vb) .NET 中 ARP 协议的强大功能来构建家庭 LAN 上所有联网设备及其硬件 (MAC) 地址的列表。我已经想出了如何计算子网上的所有 IP 地址,但我一直在寻找一种干净的方法来发送 ARP 请求并读取响应。
请注意,所有联网设备都包括非 Windows 设备(例如智能手机)。这意味着WMI 是不可能的。
现在我不知道哪种方式更麻烦:A)将本机IP 助手API 包装在托管代码中以使用其 SendArp 方法,或 B)向每个主机发送 ping 请求以填充 ARP 缓存,然后解析输出arp.exe -a
。
有谁知道只使用托管代码来处理 ARP 请求/响应的方法?使用套接字对象和一点点魔法来实现似乎并不难,但我找不到任何提供 ARP API 的第三方网络库。恐怕我没有足够的知识来自己创造一个。
networking - ARP REQUEST 数据包中使用的发送方 IP 地址是什么?
所以在一个 ARP 请求包中,我们有“谁有 192.168.1.1?告诉 192.168.1.143”。然而,回复不是“发送”到 IP 地址 192.168.1.143,而是发送到与其关联的 MAC 地址。获取发件人 IP 地址的目的是什么?
谢谢。
linux - 有没有更好的方法从 arp 表中获取 mac 地址?
我想通过使用 ip 地址从 arp 表中获取一个 mac 地址。目前我正在使用这个命令
这个命令打印我想要的。但我对此并不满意,我想知道是否有任何内置方式或更稳定的方式来做到这一点。
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 环回地址)。
但回到主要问题:还有其他方法吗?