用于获取可以使用netstat命令
netstat -rn
这给出了一个很长的IP地址列表,并不容易找到所需的字段。样本结果如下:
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.195.1 UGSc 17 0 en2
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 254107 lo0
169.254 link#7 UCS 0 0 en2
192.168.195 link#7 UCS 3 0 en2
192.168.195.1 0:27:22:67:35:ee UHLWIi 22 397 en2 1193
192.168.195.5 127.0.0.1 UHS 0 0 lo0
More result is truncated.......
网关的ip地址在第一行;第一列有默认值。
要只显示结果的选择线,可以随着netstat的
netstat -rn | grep 'default'
使用的grep命令该命令过滤器和显示具有默认结果的那些行。在这种情况下,你可以看到类似结果如下:
default 192.168.195.1 UGSc 14 0 en2
如果你有兴趣在寻找唯一通道,没有其他的IP地址,您可以进一步筛选使用AWK结果。 awk命令匹配输入结果中的模式并显示输出。当您直接在某些程序或批处理作业中使用结果时,这会很有用。
netstat -rn | grep 'default' | awk '{print $2}'
awk命令告诉给匹配,并在文本打印结果的第二列。因此,最后的结果是这样的:
192.168.195.1
在这种情况下,netstat的显示所有结果,grep的仅选择与在它的“默认”的路线,和awk进一步显示在文本中第二列中的模式匹配。
您可以同样使用route -n获取默认命令来获得所需的结果。完整的命令是
route -n get default | grep 'gateway' | awk '{print $2}'
这些命令在Linux以及unix系统和MAC OS中都能很好地工作。