标签: arp

发送ping到子网上的每个IP

是否有基于命令行的方式将ping发送到子网中的每台计算机?喜欢

for(int i = 1; i < 254; i++)
    ping(192.168.1.i);
Run Code Online (Sandbox Code Playgroud)

执行arp决议?

shell networking ping arp

46
推荐指数
9
解决办法
19万
查看次数

配置ARP时效超时

我正在尝试配置ARP年龄超时.我想我应该设置/proc/sys/net/ipv4/neigh/default/base_reachable_time_ms所需的超时.但是,尽管我将其设置为30000毫秒(30秒),但仍需要将近10分钟才能从ARP缓存中删除条目.在阅读了几篇文章后,我发现还有更多的设置会影响超时:

/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
Run Code Online (Sandbox Code Playgroud)

我不知道该为这些程序编程.该gc_timeout默认为在Linux下5分钟.我把它改为30秒,但我仍然没有看到条目被移除base_reachable_time/23*base_reachable_time/2.

如何设置ARP缓存的到期时间?

linux arp linux-kernel

35
推荐指数
1
解决办法
8万
查看次数

如何通过.NET访问ARP协议信息?

我想弄清楚我们的局域网中有哪些设备在线和离线.我见过许多程序在进行一种图形网络概述,提供局域网IP和MAC地址.我想知道是否以及如何从C#/ .NET中提取这些(ARP?)信息?

任何示例代码片段/链接将不胜感激.

.net c# ip lan arp

26
推荐指数
1
解决办法
4万
查看次数

Python arp嗅探原始套接字没有回复数据包

为了更好地理解网络概念并提高我的python技能,我试图用python实现一个数据包嗅探器.我刚开始学习python,所以代码当然可以优化;)

我已经实现了一个数据包嗅探器,它解压缩以太网帧和arp头.我想用原始套接字制作它,因为我想了解这些标题中的每个字节,所以请不要scapy帮助:)

问题是,我不会得到任何arp回复数据包.它始终是操作码1和我

这是我的源代码:

import socket
import struct
import binascii

rawSocket = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.htons(0x0806))

while True:

    packet = rawSocket.recvfrom(2048)

    ethernet_header = packet[0][0:14]
    ethernet_detailed = struct.unpack("!6s6s2s", ethernet_header)

    arp_header = packet[0][14:42]
    arp_detailed = struct.unpack("2s2s1s1s2s6s4s6s4s", arp_header)

    print "****************_ETHERNET_FRAME_****************"
    print "Dest MAC:        ", binascii.hexlify(ethernet_detailed[0])
    print "Source MAC:      ", binascii.hexlify(ethernet_detailed[1])
    print "Type:            ", binascii.hexlify(ethernet_detailed[2])
    print "************************************************"
    print "******************_ARP_HEADER_******************"
    print "Hardware type:   ", binascii.hexlify(arp_detailed[0])
    print "Protocol type:   ", binascii.hexlify(arp_detailed[1])
    print "Hardware size:   ", binascii.hexlify(arp_detailed[2])
    print "Protocol size:   ", binascii.hexlify(arp_detailed[3])
    print "Opcode:          ", binascii.hexlify(arp_detailed[4])
    print "Source …
Run Code Online (Sandbox Code Playgroud)

python sniffer arp

14
推荐指数
1
解决办法
1万
查看次数

如何在iPhone上查询ARP表?

我是iPhone开发的新手,我想在我的应用程序中集成wake-on-lan而不会挤压我的用户在知道IP时输入计算机MAC地址.我用谷歌搜索了几个小时,拿了一个ARP工具的源代码,但我不知道如何在iPhone上管理它.

iphone mac-address ip-address arp

10
推荐指数
2
解决办法
2万
查看次数

用于安全更新和修补程序的注册表项位置

在我的应用程序中,我想查询Windows上的安全更新和修补程序框.为此,我已经查询HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall除了Windows 2008服务器和Windows 7之外的操作系统上的一切顺利...

appwiz.cpl在Windows 2008服务器计算机上运行时,它显示了大量的修补程序和安全更新,但它们中没有任何条目HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall.看起来Windows已经改变了Windows 2008服务器和Windows 7的注册表位置.

我需要查询安全更新和修补程序的详细信息.

windows registry arp

10
推荐指数
1
解决办法
9万
查看次数

从MAC地址获取IP.arp -a没有显示设备

我正在尝试编写一个批处理文件,当它连接到网络(Tenda WiFi路由器)时,应该找到我的Android手机动态分配的IP.

所以我正在尝试arp -a搜索手机的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
Run Code Online (Sandbox Code Playgroud)

问题是它没有出现在表格中!我试过ping 192.168.0.255但它仍然没有显示出来.我尝试从手机的浏览器请求192.168.0.100(我的桌面电脑的IP),这确实足以让手机上雷.但是每次我希望它出现在arp表中时,我都没有选择手动执行此操作.

如何让Android手机出现在arp表中(除了连​​接到WiFi之外没有做任何事情)?

windows networking command-line batch-file arp

10
推荐指数
1
解决办法
7万
查看次数

有什么方法可以改变同步Windows API SendARP的行为?

我正在Windows上编写本地网络扫描程序,以查找具有IP帮助程序功能的在线主机,这相当于nmap -PR没有WinPcap.我知道如果远程主机没有响应,SendARP将阻塞并发送arp请求3次,所以我用std::aync它为每个主机创建一个线程,但问题是我想每20ms发送一个ARP请求所以它不会太多在很短的时间内很多arp数据包.

#include <iostream>
#include <future>
#include <vector>

#include <winsock2.h>
#include <iphlpapi.h>


#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib, "ws2_32.lib")

using namespace std;

int main(int argc, char **argv)
{
    ULONG MacAddr[2];       /* for 6-byte hardware addresses */
    ULONG PhysAddrLen = 6;  /* default to length of six bytes */
    memset(&MacAddr, 0xff, sizeof (MacAddr));
    PhysAddrLen = 6;

    IPAddr SrcIp = 0;
    IPAddr DestIp = 0;

    char buf[64] = {0};

    size_t start = time(NULL);

    std::vector<std::future<DWORD> > vResults;

    for …
Run Code Online (Sandbox Code Playgroud)

c++ winapi multithreading asynchronous arp

10
推荐指数
1
解决办法
418
查看次数

是否有针对在MacOS上设置net.inet.ip.scopedroute = 0导致的ARP条目损坏的解决方法?

好的,这是我的问题.请原谅我,因为它有点复杂.我几乎100%肯定它是由MacOS 10.6内核错误造成的,但由于我们不能指望修复错误,我需要一个解决方法.

之前了解到"ipfw ... fwd"规则在MacOS 10.6上无法正常工作(它适用于10.5)除非你先做

sysctl -w net.inet.ip.scopedroute=0
Run Code Online (Sandbox Code Playgroud)

然而,事实证明这种解决方案也不完美; 在进行此更改后大约10到15分钟,我的Mac基本上停止与互联网通话.ping我本地网络外的任何东西开始说"没有到主机的路由",即使我绝对有一个有效的默认路由.我已将问题跟踪到错误的ARP条目.在运行上面的命令之前,我的arp表看起来像这样:

# arp -a
router (192.168.42.1) at 0:1c:10:b0:d4:79 on en1 ifscope [ethernet]
Run Code Online (Sandbox Code Playgroud)

运行上面的sysctl然后再做ping google.com,它看起来像这样:

# arp -a
dd-wrt (192.168.42.1) at 0:1c:10:b0:d4:79 on en1 [ethernet]
dd-wrt (192.168.42.1) at 0:1c:10:b0:d4:79 on en1 ifscope [ethernet]
Run Code Online (Sandbox Code Playgroud)

到目前为止,如此无害.但不久之后,原来的arp条目超时了,我们剩下的就是新的.MacOS尝试刷新旧条目,但它永远不会回来.tcpdump显示来自我的Mac的重复ARP请求,正确的ARP响应从路由器返回,但答案永远不会被放入ARP表.我怀疑答案只是更新同一IP 的其他 ARP条目,因为它们在某种哈希表中都有相同的密钥.

运行"arp -a -d"(或我试过的"arp -d"的任何变体)都不能成功删除这两个ARP条目 - 只有其中一个.而且显然不是正确的.

以下任何一种解决方法都会使问题消失,但这是不可取的:

  • 而不是在运行时更改sysctl,编辑sysctl.conf并重新启动.
  • 更改sysctl后,关闭界面并重新启动它.
  • 更改sysctl后,删除该接口的所有路由(使用该route命令)并重新创建它们.

但是,这些选项中的每一个都使系统暂时处于数据包不可路由的状态.此外,因为我实际上并不知道这个sysctl做了什么(有人能指出我的文档吗?)我真的希望我的程序能够在退出时将其恢复正常.但是,如果我这样做,那么下次我的程序开始时它会被打破.

我认为我真正需要做的就是清除ARP表,但也许我错过了一些明显的东西.有没有一种简单的方法来解决这个问题,还是我不得不求助于丑陋的事情?

(顺便说一句,我正在开发的程序是开源的,名为sshuttle.如果你在一台新的Mac上尝试将sysctl设置为默认值1,你应该能够轻松地复制问题.)

谢谢你的任何建议.

macos routing arp

9
推荐指数
1
解决办法
4114
查看次数

tcpdump 过滤掉 arp 和所有 stp 数据包

我需要使用 tcpdump 捕获接口并过滤掉所有 arp 和 stp/rstp 数据包。我尝试了这个命令,它确实过滤掉了 arp,但我仍然看到 rstp 数据包:

tcpdump -n -i ens224 not arp and not stp

也尝试了这个,仍然看到rstp数据包

tcpdump -n -i ens224 not stp

我究竟做错了什么?

我已经读过这篇文章,但它在 tcpdump 的上下文中没有帮助,寻找特定的语法: how to filter rtsp packet from a pcap file

filter tcpdump arp stp

9
推荐指数
1
解决办法
3万
查看次数