linux – 如何在同一网络中检测给定设备的IP
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何在同一网络中检测给定设备的IP,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1432字,纯文字阅读大概需要3分钟。
内容图文
我有一个非常典型的情况,我想使用ssh将(android)手机连接到同一(wifi)网络中的linux笔记本. IP由DHCP分配,因此我事先只知道客户端.知道客户端的IP我原则上可以在同一网络中的所有可能的IP上循环ssh命令,看看服务器是否在那里监听.然而,这似乎非常低效.那么,我怎样才能找出我的主机的IP(知道它的MAC地址)所以我可以使用ssh连接到它?我知道其他软件实现了这样的东西,所以它必须是可能的.相关:我可以在客户端上动态地为此IP分配主机名(假设它是Linux),以便我可以在ssh配置文件中使用静态条目吗?
解决方法:
您可以通过以下两个步骤执行此操作:
步骤1:
扫描子网以填充ARP缓存.有方法,但我建议fping.通过在终端中运行命令bellow在Ubuntu上安装它:
apt-get install fping
…然后扫描您的网络(例如,子网192.168.10.0/24):
fping -g 192.168.10.0/24
现在ARP缓存中充满了子网中设备的MAC地址.
第2步
在ARP缓存上应用适当的过滤器以查看目标设备.只需使用以下命令(其中aa:bb:cc:dd:ee:ff是设备的MAC):
arp -n | grep -i aa:bb:cc:dd:ee:ff | cut -c-15
输出是目标设备的IP地址.
EDIT1:
示例MAC地址已更改为小写,因为Linux以这种方式显示它(与使用大写的Microsoft Windows不同)
EDIT2:
在bash脚本之后添加一个带有名称手机的主机文件(/ etc / hosts)条目,这样您就可以使用手机名称访问您的设备.要刷新关联的IP地址,请再次运行它.将名称,mac和子网更改为所需的值.
#!/bin/sh
name="cellphone"
mac=aa:bb:cc:dd:ee:ff
subnet=192.168.10.0/24
fping -g ${subnet}
ip="$(arp -n | grep -i ${mac} | cut -c-15)"
sed -i".bak" '/'${name}'/d' /etc/hosts
if [ -z "$ip" ]; then
echo "Device not found!"
else
echo "${ip}\t${name}" >> /etc/hosts
fi
内容总结
以上是互联网集市为您收集整理的linux – 如何在同一网络中检测给定设备的IP全部内容,希望文章能够帮你解决linux – 如何在同一网络中检测给定设备的IP所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。