是否有一个工具/守护程序可以在后台自动填充 /etc/ethers 以便在需要时正确唤醒 lan 主机名:mac 数据库?

是否有一个工具/守护程序可以在后台自动填充 /etc/ethers 以便在需要时正确唤醒 lan 主机名:mac 数据库?

是否有一个可用的工具/守护程序可以在后台自动填充 /etc/ethers 并使用正确的主机名:mac 对,以便在需要时拥有最新的数据库,例如 LAN 唤醒(wol)?也许有些东西不会“扫描”网络,但会随意转储 arp 缓存或其他东西?

谢谢

答案1

可以处理大部分问题的工具是arpwatch.默认情况下(至少在 Debian 上)它会写入/var/lib/arpwatch/arp.dat.每次arpwatch停止时都会刷新并更新此文件。

该文件包含以下形式的条目:

52:54:00:aa:bb:cc  192.168.1.2  1452252063  somehostname  eth0

/etc/ethers文件仅需要 MAC 地址和 IP 地址或可解析的主机名:

52:54:00:aa:bb:cc  192.168.1.2

然后,保持/etc/ethers更新并与每天运行的小脚本同步就变得非常简单crontab

#!/bin/bash

# Flush arp.dat
service arpwatch restart

# Save a copy
test -f /etc/ethers || touch /etc/ethers
cp -fp /etc/ethers /etc/ethers.old

# Check to see if anything new has arrived. If so rebuild the file
(
    echo '# This file is updated automatically from /var/lib/arpwatch/arp.dat'
    echo '# Take care when editing'
    echo '#'
    (
        awk '{print $1,$2}' /var/lib/arpwatch/arp.dat
        grep -v '^#' /etc/ethers.old
    ) |
        sort -u
) >/etc/ethers.tmp

# Update ethers with the new file
cmp -s /etc/ethers.tmp /etc/ethers || cat /etc/ethers.tmp >/etc/ethers
rm -f /etc/ethers.tmp

# All done
exit 0

相关内容