问题标签 [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 投票
0 回答
1243 浏览

c# - 使用 C# 的无偿 ARP 请求

在 Windows 2008 服务器上工作并将 IP 地址本地分配给服务器。分配 IP 地址后,我需要子网中的所有其他服务器更新其 ARP 缓存。这似乎可以使用免费 ARP,但我无法找出如何发送请求。有人对这个有经验么 ?

0 投票
3 回答
4265 浏览

wireshark - 为什么我们在 ARP 请求中需要发送者 MAC 地址?

是 ARP 请求 PNG 图像的 Wireshark 捕获,我在 ARP 数据包中包含发送方 MAC。接收站可以从以太网帧中获得 MAC。似乎是多余的。在 ARP 请求中单独包含发送者 MAC 地址是否有任何特殊用途?

0 投票
1 回答
1884 浏览

networking - RARP协议的应用

我知道RARP protocol用于将物理地址映射到逻辑地址及其一些实际应用。现在我研究了RARP(reverse ARP) protocol但找不到它的实际应用。谁能给一些RARP协议的场景和实际应用

0 投票
1 回答
2540 浏览

c - ARP 回复数据包不更新 Ubuntu 上的 ARP 缓存

因此,在我玩过由 Digitalsquid (http://digitalsquid.co.uk/netspoof/) 开发的 Network Spoofer 之后,我一直试图通过编写执行类似操作的 ac 程序来更好地了解其内部工作。

我的程序目前接收 4 个参数——源 ip、源 mac、受害者 ip 和受害者 mac——并与它们一起发送一个 ARP 回复数据包。在我的家庭网络上测试程序时,我会做一些事情,比如将源 ip 设置为路由器的 ip,将源 mac 设置为伪造的东西,将受害者 ip 设置为我的笔记本电脑的 ip,将受害者 mac 设置为我的笔记本电脑的无线网卡 mac。

问题是,虽然我可以看到使用 tcpdump 监控无线网卡发送/接收的数据包(即我会看到类似“01:43:23.656745 ARP, Ethernet (len 6), IPv4 (len 4), 回复rouer-ip is-at bogus-mac-address , length 28", 这正是我所期望的),路由器的 ARP 缓存条目保持不变(即仍然具有正确的 mac 地址)。

我不太确定这里的问题是什么,以及为什么我不能毒化我的 ARP 缓存。我在某处读到它可能是我的操作系统 Ubuntu 12.04,丢弃了未经请求的 ARP 数据包,所以我尝试将 /proc/sys/net/ipv4/conf/wlan0/arp_accept 设置为 1 - 不走运。我还尝试按照另一篇文章的建议打开 IP 转发(将 /proc/sys/net/ipv4/ip_forward 设置为 1),但仍然没有运气。

如果有人能给我一些关于问题可能是什么的指示/提示,我将不胜感激。另外,如果我的理解有误,请纠正我——我在 c 编程和 ARP 欺骗领域还很陌生。

谢谢!

JY

0 投票
1 回答
4273 浏览

linux - 为什么默认情况下不启用 arp ignore/annouce

我有一个需要经验才能回答的具体问题:

为什么 arp_ignore / arp_announce 在 linux 安装(例如 debian )上默认不启用,是否有特定原因?

从错误的网络接口接收 arp 答案的兴趣是什么?

谢谢你的帮助。

问候,

0 投票
2 回答
3374 浏览

c++ - 为什么我的程序不发送 ARP 请求(c++)?

我正在用 c++ 学习低级套接字。我做了一个简单的程序来发送一个 ARP 请求。套接字似乎发送了数据包,但我无法用 Wireshark 捕获它。我有另一个小程序,它也发送 ARP 数据包,这些数据包被 Wireshark 捕获(我下面的程序受到该程序的启发)。

我做错了什么吗?

删除代码

编辑

删除代码

编辑 2
似乎我还需要在数据包中包含以太网头数据,所以我现在制作一个包含以太网头和 ARP 头数据的数据包。现在数据包消失并被 Wireshark 捕获。但 Wireshark 说这是免费的。如您所见,发送方和接收方的 IP 或 MAC 地址似乎都没有正确设置。


编辑 3

0 投票
1 回答
1822 浏览

php - PHP 发送原始数据包

我想知道如何通过网络发送带有原始数据的数据包。我需要能够获取 LAN 上设备的物理地址,因此我计划广播或多播 ARP 数据包。

下面是一个正确构造的请求设备 IP 的 ARP 数据包。

这是十六进制的原始数据。

如果我要以 ASCII 格式获取数据,是否像打开套接字并使用正确的端口号发送信息一样简单?实际上,由于这是 2 级而不是 3 级,这意味着没有 TCP 和 UDP(我认为?)那么我将如何发送呢?

0 投票
2 回答
1021 浏览

c - 使用任意源 MAC 发送 ARP 回复

这是我上一个问题的后续:ARP 回复数据包不更新 Ubuntu 上的 ARP 缓存。事实证明,我的问题是我使用了任意 MAC 地址作为源 MAC(即我的网络上不存在的 MAC 地址,比如 aa:bb:cc:dd:ee:ff)。只要我的源 MAC 与我的 NIC 的 MAC 匹配,我就可以毫无问题地发送 ARP 回复来毒化我的缓存。我尝试手动将我的 NIC 设置为具有任意 MAC 地址,然后使用它作为我的 ARP 数据包的源 MAC 地址发送 ARP 回复 - 也有效。

我想知道是否有人知道这个的内部运作。是否有某种检查可以防止发送源 MAC 不匹配的数据包?是否检查了以太网帧的源 MAC 与 ARP 数据包的源 MAC?出于我正在运行的实验的目的,有没有办法绕过这个限制?

JY

0 投票
2 回答
1462 浏览

c# - 如何判断设备何时连接和断开网络?

我希望能够根据我的手机 (wifi) 的 wifi 网络存在来武装/解除我的监控软件 (开源 - ispy)。不知何故,我需要 ispy 来检测手机已连接到无线网络以解除系统,然后还检测到它已断开连接,以便它可以重新武装它。

我一直在阅读有关 SNMP 的信息(我无法开始工作 - 我在 udp 端口​​ 161 上设置了一个侦听器,并将陷阱管理器设置为指向我的电脑,它除了初始的“0”之外什么都不发送?”)和 ARP(我已经能够开始工作,但它似乎缓存在我的本地 PC 上,并且绝对不会实时更新)。

我宁愿找到一个解决方案,它依赖于来自路由器的通知(最好不是 UPNP,因为我发现它很容易崩溃)或通过一些网络数据包嗅探,而不是通过不断轮询路由器以获取连接设备的列表. c# 中的任何示例都很棒。

0 投票
2 回答
12295 浏览

router - 网关没有 ARP 响应

我正在开发一个必须通过 10Base-T 以太网与外界通信的嵌入式系统。我已经构建了服务网页所需的所有功能,包括 ARP、IP、TCP、ICMP (ping)、HTTP 和部分 FTP。现在,我需要构建其余代码,这将允许我充当客户端。从服务器的角度来看,所有上述协议已经运行了几个月。

现在,我需要构建这些协议的客户端一半,以从其他服务器请求数据。第 1 步是对远程服务器的硬件地址进行 ARP。据我了解,由于服务器位于另一个网络上,因此我的网关应使用其 MAC 地址进行响应,以便我知道将所有发往该 IP 的数据包传递给我的网关。这是问题所在:

我的设备(192.168.1.251,子网掩码 255.255.255.0)没有从我的网关(192.168.1.1)或网络外的任何机器获得 ARP 响应。但是,我的设备 (X.251) 确实从同一路由器下的笔记本电脑 (192.168.1.100) 收到了 ARP 响应。

我确定我的基本 ARP 以太网帧结构是正确的,因为我每次都正确回复 ARP 请求。不同之处在于 OPERATION 字段,取决于 REQUEST 或 REPLY,它是 1 或 2。


这是我的设备 (192.168.1.251) 对网关 (192.168.1.1) 的请求,但没有得到响应:

FF FF FF FF FF FF <-- 目标 MAC - 广播(也尝试过 0x00)

00 04 A3 7F C1 57 <-- 源 MAC - 我的设备

08 06 <-- ARP

00 01 <-- 以太网

08 00 <-- 知识产权

06 <-- 6 字节 MAC 地址

04 <-- 4 字节 IP 地址

00 01 <-- 请求(2 = 回复)

00 04 A3 7F C1 57 <-- 发件人 MAC - 我的

C0 A8 01 FB <-- 发件人 IP - 我的 = 192.168.1.251

00 00 00 00 00 00 <-- 目标 MAC - 未知,请求的原因

C0 A8 01 01 <-- 目标 IP - 网关 = 192.168.1.1

00 00 00 00 ..... 00 00 00 <-- 18 组 00 的预告片用于填充


现在,我的设备 (192.168.1.251) 对我的笔记本电脑 (192.168.1.100) 的请求几乎相同,得到了有效响应:

FF FF FF FF FF FF <-- 目标 MAC - 广播(也尝试过 0x00)

00 04 A3 7F C1 57 <-- 源 MAC - 我的设备

08 06 <-- ARP

00 01 <-- 以太网

08 00 <-- 知识产权

06 <-- 6 字节 MAC 地址

04 <-- 4 字节 IP 地址

00 01 <-- 请求(2 = 回复)

00 04 A3 7F C1 57 <-- 发件人 MAC - 我的

C0 A8 01 FB <-- 发件人 IP - 我的 = 192.168.1.251

00 00 00 00 00 00 <-- 目标 MAC - 未知,请求的原因

C0 A8 01 64 <-- 目标 IP - 笔记本电脑 = 192.168.1.100

00 00 00 00 ..... 00 00 00 <-- 18 组 00 的预告片用于填充


可能重要也可能不重要的旁注:

  • 我的设备和网关都显示在笔记本电脑的 ARP 表中。
  • 我的笔记本电脑运行的是Win7。
  • 我的网关是 Linksys WRT54GL Wireless-G 宽带路由器。
  • 我已经通过 Wireshark 分析了数据包以提供上述结果。
  • 我的 DHCP 块涵盖 X.100 到 X.149,所以我的笔记本电脑被路由器分配了 X.100
  • 我的 X.251 设备 IP 在设备中是硬编码的。我看不到在路由器配置应用程序中设置此 IP 和我设备的 MAC 之间的关系的方法。所有其他功能似乎都可以将我的设备用作服务器,所以我认为这不是问题。
  • 我尝试将远程服务器(google = 173.194.43.33)的 ARP 请求直接发送到服务器的 IP 和我的网关的 IP(希望它会意识到它需要成为代理。)
  • 我试过把头撞在桌子上,可悲的是,这有点帮助。