我对网络层知之甚少,我知道获取ip地址的基本命令。
有一个要求,我需要读取ip地址,它应该适用于任何linux或unix系统。
我正在尝试获取使用以下命令的IP地址。
ip route get 1.2.3.4 | grep -Po -- 'src \K\S*'.对于某些系统,我可以获得系统IP地址IPV6 4/IPV6 6。
但是对于一些人来说,我得到了一个错误: RTNETLINK答案:网络是无法到达的。
我尝试了其他ip路由命令,但同样的错误。
如何读取在任何linux/unix系统上工作的IP地址。
发布于 2022-09-08 22:29:20
我更喜欢基于GNU/LINUX Debian发行版的hostname和ip。
在过去,我使用了ifconfig,但是现在已经被ip取代了,并且在基于GNU/LINUX Debian的发行版的最基本安装上不再可用,您必须在net-tools上安装它。
检查hostname和ip的手册
@Tero Kilkanen写道
这里没有简单的答案,您需要自己进行研究才能找到/实现执行任务的工具。
全IP
hostname -Ihostname -I | tr " " "\n"全ipv4
hostname -I | grep -Eo '([0-9]*\.){3}[0-9]*' | tr '\n' '\n'全ipv6
hostname -I | grep -Eo '([a-z0-9]*\:){7}[a-z0-9]*' | tr '\n' '\n'所有ip对象
ip a全内ip
ip a | grep inet带网络掩码的所有ip(lo/ipv6 4/ipv6 6)
ip a | grep inet | cut -d' ' -f6没有网络掩码的所有ip(lo/ipv6 4/ipv6 6)
ip a | grep inet | cut -d' ' -f6 | cut -d'/' -f1如果您需要关于网络设备的更多信息,也请检查这篇文章
发布于 2022-09-08 15:16:21
没有一个命令可以在每个Linux / Unix变体上工作。
例如,基于FreeBSD的系统使用ifconfig。
早期的Linux使用ifconfig。ip后来作为替代品添加,但是人们不能相信它在所有发行版中都是可用的。
首先,您需要更准确地定义您想要支持的系统。
那么你有两种可能性:
这里没有简单的答案,您需要自己进行研究才能找到/实现执行任务的工具。一旦您找到了该工具,您就可以在这里询问有关使用该工具的具体问题。
发布于 2022-09-08 23:00:11
ping -a 1.2.3.4
whois 1.2.3.4如果您想查看网络路径:
traceroute 1.2.3.4https://serverfault.com/questions/1110262
复制相似问题