如何确定 Solaris 系统的 IP 地址

37

当我想知道我登录到的Solaris机器的IP地址时,我需要发出什么命令?


3
感觉如果一个问题得到了 22个赞140,000+的浏览量,那么它不应该被关闭... 这显然是对人们有用的问题。 - Kellen Stuart
@KellenStuart SO的首要指令是维持秩序,“有用”只是次要问题。 - Conrad
8个回答

57
如果您是普通用户(即不是 'root'),则ifconfig可能不在您的路径中,但这是您想要执行的命令。
更具体地说:/usr/sbin/ifconfig -a

1
当然,盒子上可能有许多接口,每个接口都有自己的IP地址。 - chris
当然。通常你至少会有两个——本地回环(lo0)和一个或多个以太网连接(在我的机器上是ce0)。 - Andrew
-a 将该命令应用于指定地址族的所有接口。如果没有提供地址族,无论是在命令行上还是通过 /etc/default/inet_type,都将选择所有地址族。http://docs.oracle.com/cd/E19253-01/816-5166/6mbb1kq31/ - Ivan Chau

9
/usr/sbin/ifconfig -a | awk 'BEGIN { count=0; } { if ( $1 ~ /inet/ ) { count++; if( count==2 ) { print $2; } } }'

这将列出机器的确切IP地址。

但是如果你有几个的话,只返回已翻译的文本。 - Andrey Regentov

9
以下方法对我来说非常有效:

以下方法对我来说非常有效:

ping -s my_host_name

5
以下的Shell脚本可以很好地展示接口和IP地址的表格结果(不包括回环接口),它已在Solaris系统上进行了测试。
/usr/sbin/ifconfig -a | awk '/flags/ {printf $1" "} /inet/ {print $2}' | grep -v lo

ce0: 10.106.106.108
ce0:1: 10.106.106.23
ce0:2: 10.106.106.96
ce1: 10.106.106.109

4

尝试使用ifconfig -a命令。查找 "inet xxx.xxx.xxx.xxx",这就是您的IP地址。


3
在使用类似于Linux中的ifconfig命令时,只会打印帮助文件。 - jww

3

hostnameuname 命令可以告诉你主机的名称。然后使用 nslookup 命令将其转换为 IP 地址。


2

还有:

getent $HOSTNAME

或者可能是:

或许:

getent `uname -n`

在Solaris 11中,ifconfig命令被视为过时,并正在被ipadm所取代。
ipadm show-addr

这将显示 Solaris 11 及更高版本系统上的 IP 地址。


2
getent 命令需要一个数据库作为参数。也许你想要使用 getent hosts $HOSTNAME 或者 getent hosts \uname -n``。 - Scott Centoni

0
/usr/sbin/host `hostname`

应该可以解决问题。请注意,对于Solaris服务器来说,拥有多个IP地址是相当常见的配置。

 /usr/sbin/ifconfig -a inet | awk '/inet/ {print $2}'

将会列出它们所有


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接