问题标签 [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# - 使用 C# 的无偿 ARP 请求
在 Windows 2008 服务器上工作并将 IP 地址本地分配给服务器。分配 IP 地址后,我需要子网中的所有其他服务器更新其 ARP 缓存。这似乎可以使用免费 ARP,但我无法找出如何发送请求。有人对这个有经验么 ?
wireshark - 为什么我们在 ARP 请求中需要发送者 MAC 地址?
这是 ARP 请求 PNG 图像的 Wireshark 捕获,我在 ARP 数据包中包含发送方 MAC。接收站可以从以太网帧中获得 MAC。似乎是多余的。在 ARP 请求中单独包含发送者 MAC 地址是否有任何特殊用途?
networking - RARP协议的应用
我知道RARP protocol
用于将物理地址映射到逻辑地址及其一些实际应用。现在我研究了RARP(reverse ARP) protocol
但找不到它的实际应用。谁能给一些RARP协议的场景和实际应用。
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
linux - 为什么默认情况下不启用 arp ignore/annouce
我有一个需要经验才能回答的具体问题:
为什么 arp_ignore / arp_announce 在 linux 安装(例如 debian )上默认不启用,是否有特定原因?
从错误的网络接口接收 arp 答案的兴趣是什么?
谢谢你的帮助。
问候,
c++ - 为什么我的程序不发送 ARP 请求(c++)?
我正在用 c++ 学习低级套接字。我做了一个简单的程序来发送一个 ARP 请求。套接字似乎发送了数据包,但我无法用 Wireshark 捕获它。我有另一个小程序,它也发送 ARP 数据包,这些数据包被 Wireshark 捕获(我下面的程序受到该程序的启发)。
我做错了什么吗?
删除代码
编辑
删除代码
编辑 2
似乎我还需要在数据包中包含以太网头数据,所以我现在制作一个包含以太网头和 ARP 头数据的数据包。现在数据包消失并被 Wireshark 捕获。但 Wireshark 说这是免费的。如您所见,发送方和接收方的 IP 或 MAC 地址似乎都没有正确设置。
编辑 3
php - PHP 发送原始数据包
我想知道如何通过网络发送带有原始数据的数据包。我需要能够获取 LAN 上设备的物理地址,因此我计划广播或多播 ARP 数据包。
下面是一个正确构造的请求设备 IP 的 ARP 数据包。
这是十六进制的原始数据。
如果我要以 ASCII 格式获取数据,是否像打开套接字并使用正确的端口号发送信息一样简单?实际上,由于这是 2 级而不是 3 级,这意味着没有 TCP 和 UDP(我认为?)那么我将如何发送呢?
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
c# - 如何判断设备何时连接和断开网络?
我希望能够根据我的手机 (wifi) 的 wifi 网络存在来武装/解除我的监控软件 (开源 - ispy)。不知何故,我需要 ispy 来检测手机已连接到无线网络以解除系统,然后还检测到它已断开连接,以便它可以重新武装它。
我一直在阅读有关 SNMP 的信息(我无法开始工作 - 我在 udp 端口 161 上设置了一个侦听器,并将陷阱管理器设置为指向我的电脑,它除了初始的“0”之外什么都不发送?”)和 ARP(我已经能够开始工作,但它似乎缓存在我的本地 PC 上,并且绝对不会实时更新)。
我宁愿找到一个解决方案,它依赖于来自路由器的通知(最好不是 UPNP,因为我发现它很容易崩溃)或通过一些网络数据包嗅探,而不是通过不断轮询路由器以获取连接设备的列表. c# 中的任何示例都很棒。
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(希望它会意识到它需要成为代理。)
- 我试过把头撞在桌子上,可悲的是,这有点帮助。