在OpenWRT路由器上使用arp-scan扫描局域网设备

moonjerx
2024-09-19 / 0 评论 / 122 阅读 / 正在检测是否收录...

在OpenWRT路由器环境中,使用arp-scan工具来扫描局域网内的设备是一个常见的需求。然而,在使用过程中可能会遇到一些警告信息,本文将介绍如何解决这些问题,并提供一个简化脚本来实现这一功能。

问题背景

当你在OpenWRT路由器上运行arp-scan时,可能会遇到以下警告信息:

WARNING: Cannot open MAC/Vendor file /usr/share/arp-scan/ieee-oui.txt: No such file or directory
WARNING: Cannot open MAC/Vendor file /etc/arp-scan/mac-vendor.txt: No such file or directory

这些警告信息是因为arp-scan试图读取MAC地址对应的厂商信息文件,但在指定路径下没有找到这些文件。尽管这些警告不会影响扫描的结果,但为了更好的用户体验,我们可以消除这些警告。

解决方案

忽略警告

如果你可以接受没有MAC地址对应的厂商信息,并且这些警告信息不影响你的使用,可以选择忽略它们。arp-scan已经成功扫描到了局域网内的设备。

安装厂商信息文件

如果你希望arp-scan能够显示MAC地址对应的厂商信息,可以手动下载这些文件并放置在相应的路径下。

下载并安装厂商信息文件

  1. 创建必要的目录

    mkdir -p /usr/share/arp-scan
    mkdir -p /etc/arp-scan
  2. 下载IEEE OUI文件

    wget -O /usr/share/arp-scan/ieee-oui.txt https://standards-oui.ieee.org/oui/oui.txt
  3. 下载简化的厂商映射文件

    wget -O /etc/arp-scan/mac-vendor.txt https://raw.githubusercontent.com/vektra/macsvendor/master/macsvendor/db/macvendors.db

修改脚本以忽略警告

如果你不希望看到这些警告信息,可以在脚本中添加对这些警告的忽略。例如,可以通过重定向标准错误输出到/dev/null来忽略这些警告:

#!/bin/sh

# 获取当前设备的主要网络接口(假设为主网卡)
INTERFACE=$(ip route get 1 | awk '{print $5}')

# 确保使用的是局域网接口
if [[ "$INTERFACE" =~ ^eth ]]; then
    INTERFACE="$INTERFACE"
else
    INTERFACE="br-lan"  # 假设局域网接口为br-lan
fi

# 确认接口有IP地址
IP=$(ip addr show $INTERFACE | awk 'NR==2{print $2}' | cut -f1 -d'/')
if [ -z "$IP" ]; then
    echo "Error: The interface $INTERFACE does not have an IP address."
    exit 1
fi

# 使用arp-scan扫描局域网内的设备
echo "Scanning for devices on the local network..."
DEVICES=$(arp-scan --interface=$INTERFACE --localnet 2>/dev/null)

# 输出结果
if [ -z "$DEVICES" ]; then
    echo "No devices were detected on the network."
else
    echo "The following devices are connected to the network:"
    echo "$DEVICES"
fi

在这个脚本中,arp-scan命令的标准错误输出被重定向到了/dev/null,从而忽略了所有警告信息。

使用说明

  1. 保存脚本:将上述脚本保存为一个文件,例如scan_network_devices.sh
  2. 赋予执行权限:使脚本可执行。

    chmod +x scan_network_devices.sh
  3. 运行脚本:执行脚本以开始扫描。

    ./scan_network_devices.sh

结论

无论采用哪种方法,你都可以继续使用arp-scan来扫描局域网内的设备。希望这篇文章对你有所帮助!

0

评论 (0)

取消

您的IP: