用于获取IP地址的Shell命令?

有没有一个bash命令来查找Ubuntu的IP地址框? 我需要findIP地址,以便稍后可以进入机器。

/sbin/ifconfig -a

您可以使用:

 /bin/ip addr 

/bin/hostname -i

如果您有使用的内部地址,请检查

 curl http://myip.dnsomatic.com 

可能是unix shell的一个好主意。
或者,只需将该URL插入浏览器即可。


如果从“ ifconfig -a ”结果得到不同的答案,
ifconfig给你的内部地址 – 这可能不会从外面工作。


即使一切看起来不错,你也可以有一个防火墙来阻止传入的ssh连接。
在这个时候你应该从机器上的浏览器中尝试感兴趣的端口,

 http://www.canyouseeme.org/ 

这将确认通过,

  • 外部IP地址(在该页面上显示给你)
  • NAT,端口转发
  • 防火墙
 /sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}' 

如果你需要你的内部地址在ifconfig之后附加你的接口,例如

  /sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}' 

如果您在NAT后面,并且需要公共IP,请使用以下命令:

wget -q -O – checkip.dyndns.org | sed -e's /。 当前IP地址://'-e's / <。 $ //”

取自: http : //www.go2linux.org/what-is-my-public-ip-address-with-linux

如果你需要找出你的路由器的IP地址,你可以运行这个命令。

 挖+短myip.opendns.com @ 208.67.222.222 @ 208.67.220.220 

如果您使用OpenDNS作为您的dns服务器,则可以将其缩短为:

 挖+短myip.opendns.com 

你也可以使用这个命令。

 curlhttp://myip.dnsomatic.com 

如果你有多个接口,可以指定你想要哪一个IP。 如果你想要接口'eth0'的IPV4地址:

 ip addr show dev eth0 | grep "inet " | awk '{ print $2 }' 

如果你想要接口'eth0'的IPV6地址:

 ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }' 

如果您想在笔记本电脑的两个通用接口wlan0和eth0之间searchIP:

 CURRENT_IP='' for INTERFACE in wlan0 eth0; do if [ -z $CURRENT_IP ]; then CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }') fi done 

这是一个可以在Linux和OS X上运行的行,它将返回不是本地的第一个地址:

 ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' 

发送学分到https://stackoverflow.com/a/13322549/99834

只需curl此页面 :

$ curl wtfismyip.com/text

最简单的方法可能是

 ifconfig eth0 

假定机器在默认的有线接口上有一个IP地址 – 您可能需要

 ifconfig wlan0 

如果它在WiFi上。

 ip address show scope link 

它会显示你的IP地址 – 有链接 – 接口。 但它不是一个bash命令。 Bash根本无法了解IP和networking。

我的理解是你想连接一个远程的Ubuntu的机器,它具有dynamicIP。 去dyndns.org网站,并打开一个免费的帐户。 然后在远程机器上,您需要安装一个dynamicip工具。

 sudo aptitude install dyndns-client 

所以你可以通过SSH远程机器

 ssh [email protected] 

所以configuration完成后,你永远不需要远程机器的IP地址。

这是我正在使用的:

 LC_ALL=C /sbin/ifconfig | awk ' /inet addr/ { gsub("addr:",""); if(($2!="127.0.0.1") && ($2!="0.0.0.0") && ($2!="")) { print $2 }; }' 

如果你只需要一个给定接口的IP,你可以这样做:

 ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2); print $2 }' 
 LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`