OS X 终端中简明的 IP 信息

OS X 终端中简明的 IP 信息

OS X 终端是否有命令可以显示只有最重要的有关您的机器的 IP 配置信息?我知道有“ifconfig”,但这会带来一堆(大多数情况下)不必要的信息。我只想知道我当前的IP、子网掩码、默认网关和 DNS

更新


netstat -rn 的输出

Axels-MacBook-Air:~ axelkennedal$ netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            10.164.192.1       UGSc           75        0     en0
10.164.192/19      link#4             UCS             3        0     en0
10.164.192.1       c0:62:6b:e2:7a:c0  UHLWIir        76       20     en0   1150
10.164.206.216     127.0.0.1          UHS             0       25     lo0
10.164.223.255     ff:ff:ff:ff:ff:ff  UHLWbI          0       14     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              4      644     lo0
169.254            link#4             UCS             0        0     en0

Internet6:
Destination                             Gateway                         Flags         Netif Expire
::1                                     ::1                             UHL             lo0
fe80::%lo0/64                           fe80::1%lo0                     UcI             lo0
fe80::1%lo0                             link#1                          UHLI            lo0
fe80::%en0/64                           link#4                          UCI             en0
fe80::7ed1:c3ff:fef1:9b1f%en0           7c:d1:c3:f1:9b:1f               UHLI            lo0
ff01::%lo0/32                           ::1                             UmCI            lo0
ff01::%en0/32                           link#4                          UmCI            en0
ff02::%lo0/32                           ::1                             UmCI            lo0
ff02::%en0/32                           link#4                          UmCI            en0

答案1

据我所知,没有一个命令可以为您提供所有想要的信息。您需要运行几个不同的命令。最简单的方法可能是创建一个小脚本来为您执行此操作。我在 Linux 上使用 Linuxipconfig上不可用的命令编写此程序,因此可能会出现一些错误,请告诉我,我会尝试解决它们。

#!/bin/bash

## Get the ip
ip=$(ipconfig getifaddr en0)

## Get the DNS server(s), this assumes Wi-Fi
dns=$(networksetup -getdnsservers Wi-Fi)

## Get the gateway
gateway=$(netstat -rn | awk 'NR==3{print $2}')

## And the netmask
mask=$(netstat -rn | awk 'NR==4{print $3}')

## Pretty print
cat<<EOF
IP      : $ip
Gateway : $gateway
Netmask : $mask
DNS     : $dns
EOF

将该脚本另存为或任何内容到您的(例如)netinfo.sh目录中,使其成为可执行文件( )然后运行它:$PATH/usr/local/binchmod a+x /usr/local/bin/netinfo.sh

$ netinfo.sh

答案2

希望这有帮助。我认为没有一个命令可以显示该信息。

ifconfig en1 | grep inet && scutil --dns | grep nameserver && netstat -nr | grep default

相关内容