我正在尝试使用调用 ip 的桌面启动文件来获取没有显示器的计算机的以太网 MAC 地址。
这就是我必须处理的事情:
一台笔记本电脑
无显示屏迷你电脑:MSI Cubi -231XTW 第五代 Intel® Core™ i7 i7-5500U 迷你电脑
两个安装并升级了 Ubuntu 19.1 的固态硬盘(我使用笔记本电脑在其上安装了 Ubuntu)。
到目前为止,我创建了:/home/max/.config/autostart/hwadd.desktop:
[Desktop Entry]
Version=1.0
Name=Get Hardware Address
Comment=n/a
Exec=hwadd
Terminal=false
Type=Application
Categories=Utility;Application;
我在 /usr/bin/hwadd 中有这个脚本:
cd /home/max/
ip a > /home/max/ipaddress
当我使用具有此 .desktop 启动脚本的硬盘启动笔记本电脑时,它会按预期工作 - 我在我的主文件夹中得到一个包含硬件地址信息的文件。
但是,当我将硬盘放入无显示的微型计算机并启动它,让它运行5分钟,然后关闭电源,取出驱动器,挂载硬盘进行读取时,我发现没有包含以下内容的文件:我正在寻找的 ip 输出。
关于如何让它发挥作用有什么想法吗?
答案1
如果您有权访问路由器的控制面板或 DHCP 表,您可以找到分配有本地 IP 及其 MAC 地址的客户端列表。
更符合您的想法,我认为自动启动在无头环境中不起作用。自动启动中的脚本由您的窗口管理器(或显示环境,我不太记得它是什么)调用。
也可以看看:如何在无头启动时运行脚本?
答案2
从笔记本电脑上的命令行运行
#> arp -a
这将检查交换机上的 arp 表。笔记本电脑必须位于同一子网中,并且需要切换才能从您的笔记本电脑上查看它。应该得到一些东西像
Interface: 192.168.1.46 --- 0xa Internet Address Physical Address Type
169.254.7.252 a8-54-b2-90-fa-65 dynamic
192.168.1.1 04-d4-c4-63-46-74 dynamic
192.168.1.18 74-40-bb-b8-53-6f dynamic
192.168.1.26 6c-40-08-a4-86-e0 dynamic
192.168.1.32 c0-f8-da-80-11-69 dynamic
192.168.1.49 00-d0-2d-49-a9-e1 dynamic
192.168.1.55 c0-56-e3-a0-ea-27 dynamic
192.168.1.56 c4-2f-90-d4-25-1b dynamic
192.168.1.57 44-47-cc-89-19-92 dynamic
192.168.1.59 ec-71-db-b7-4c-bd dynamic
192.168.1.66 4c-1b-86-ee-f6-bd dynamic
192.168.1.81 fc-03-9f-50-df-32 dynamic
192.168.1.103 a8-54-b2-90-fa-65 dynamic
192.168.1.109 a8-47-4a-77-c0-c1 dynamic
192.168.1.115 ec-71-db-aa-2b-90 dynamic
现在你有了地址和 MAC,只需弄清楚哪一个去往什么地方。如果您还不知道 IP,netstat 可能会有所帮助。
此外,较新的系统将为现代 arp -a 命令提供 ip neigh
祝你好运。