如何优雅的获取 Mac OS 系统 IP 地址?

举报
liuzhen007 发表于 2021/11/21 23:19:29 2021/11/21
【摘要】 ​ 目录前言正文结尾前言用惯了 windows 系统的电脑,再使用苹果电脑时,总会有各种不习惯。比如,在获取电脑 IP 地址的时候,windows 电脑使用 ipconfig 命令就能非常方便的获取。但是,在苹果电脑上,使用类似的命令工具 ifconfig 却不那么方便了。因为系统会打印出很多无用的网卡信息,那么我们如何能够在 Mac 系统上优雅的获取 IP 地址呢?这就是我们今天想要介绍的...

 目录

  • 前言
  • 正文
  • 结尾

前言

用惯了 windows 系统的电脑,再使用苹果电脑时,总会有各种不习惯。比如,在获取电脑 IP 地址的时候,windows 电脑使用 ipconfig 命令就能非常方便的获取。但是,在苹果电脑上,使用类似的命令工具 ifconfig 却不那么方便了。因为系统会打印出很多无用的网卡信息,那么我们如何能够在 Mac 系统上优雅的获取 IP 地址呢?这就是我们今天想要介绍的内容。

正文

我们都知道,在 windows 电脑上使用 ipconfig 命令就能非常方便的获取本机的 IP 地址。Mac 上也有类似的命令工具———— ifconfig,但是并不是很好用。

比如,在的机器上执行该命令,结果如下:

sh-3.2# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=400<CHANNEL_IO>
	ether f4:5c:89:b2:e9:81
	inet6 fe80::185c:8a51:7ee4:d399%en0 prefixlen 64 secured scopeid 0x4
	inet 192.168.3.16 netmask 0xffffff00 broadcast 192.168.3.255
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=460<TSO4,TSO6,CHANNEL_IO>
	ether 82:17:07:5f:28:00
	media: autoselect <full-duplex>
	status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=460<TSO4,TSO6,CHANNEL_IO>
	ether 82:17:07:5f:28:01
	media: autoselect <full-duplex>
	status: inactive
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=63<RXCSUM,TXCSUM,TSO4,TSO6>
	ether 82:17:07:5f:28:00
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en1 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 5 priority 0 path cost 0
	member: en2 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 6 priority 0 path cost 0
	nd6 options=201<PERFORMNUD,DAD>
	media: <unknown type>
	status: inactive
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
	options=400<CHANNEL_IO>
	ether 06:5c:89:b2:e9:81
	media: autoselect
	status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
	options=400<CHANNEL_IO>
	ether 8a:7b:0d:5f:72:87
	inet6 fe80::887b:dff:fe5f:7287%awdl0 prefixlen 64 scopeid 0x9
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
llw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=400<CHANNEL_IO>
	ether 8a:7b:0d:5f:72:87
	inet6 fe80::887b:dff:fe5f:7287%llw0 prefixlen 64 scopeid 0xa
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
	inet6 fe80::66b1:fe05:eb71:7aa0%utun0 prefixlen 64 scopeid 0xb
	nd6 options=201<PERFORMNUD,DAD>
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
	inet6 fe80::10eb:462e:b7cd:f6c%utun1 prefixlen 64 scopeid 0xc
	nd6 options=201<PERFORMNUD,DAD>

执行结果的部分截图如下:

image.png

看到这些打印结果,是不是瞬间蒙圈啦?

哈哈,可以理解,那么有没有更加直观的命令语句呢?答案是有的。

终极命令:

ifconfig | grep "inet " | grep -v 127.0.0.1

让我看一下执行效果:

image.png

完美,言简意赅,直接打印了我们想要的 IP 地址信息:192.168.3.16 。

结尾

直到今天,终于知道如何在苹果电脑上优雅的用命令行获取 IP 地址信息了,感兴趣的小伙伴,自己赶紧复制粘贴命令试试吧!



作者简介:大家好,我是 liuzhen007(Data-Mining),是一位音视频技术爱好者,同时也是CSDN博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。