首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ip和mac地址linux

ip和mac地址linux
EN

Stack Overflow用户
提问于 2013-11-20 14:12:36
回答 4查看 1.8K关注 0票数 1

我想把ip地址和mac地址作为linux终端的输出.

我不想要ip地址之前的'addr‘。mac-地址必须以以下形式显示:000C29DDED7C (没有“:”,并且全部以大写字母表示)

我试过这个:

代码语言:javascript
复制
echo "ip-address: `/sbin/ifconfig | head -2 | grep 'inet ' | tr -s ' ' | cut -d' ' -f3` mac-address: `/sbin/ifconfig | head -1 | tr -s ' ' | cut -d' ' -f5 | tr ':' ' ' | tr 'a-z' 'A-Z'`"

给我:

代码语言:javascript
复制
ip-address: addr:192.168.8.141 mac-address: 00 0C 29 AC 3C 02
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-20 14:33:52

您可以在两个位置添加sed,删除"addr:“和MAC地址之间的空格。

下面是整个命令

代码语言:javascript
复制
echo "ip-address: `/sbin/ifconfig | head -2 | grep 'inet ' | tr -s ' ' | sed 's/addr://g' |cut -d' ' -f3` mac-address: `/sbin/ifconfig | head -1 | tr -s ' ' | cut -d' ' -f5 | tr ':' ' ' |tr 'a-z' 'A-Z'|sed 's/ //g'`"

此命令的输出为

代码语言:javascript
复制
ip-address: 10.137.108.181 mac-address: AC162D72A875
票数 0
EN

Stack Overflow用户

发布于 2013-11-20 14:21:40

使用egrep获取ips地址:

代码语言:javascript
复制
ifconfig|egrep -o "([0-9]+\.){3}[0-9]+"

获取没有子网掩码、没有"addr:“的ips地址:

代码语言:javascript
复制
ifconfig|egrep -o "addr:([0-9]+\.){3}[0-9]+"|sed "s/addr://g"

获取mac地址:

代码语言:javascript
复制
ifconfig|egrep -o "HWaddr [A-Za-z0-9:]+"|sed "s/HWaddr\ //"

您可以将每个命令的输出捕获到一个变量中,以便按需要打印:

代码语言:javascript
复制
interfaceNum=1
ip=$(/sbin/ifconfig|egrep -o "addr:([0-9]+\.){3}[0-9]+"|sed -n "s/addr://g;${interfaceNum}p")
mac=$(/sbin/ifconfig|egrep -o "HWaddr [A-Za-z0-9:]+"|sed -n "s/HWaddr\ //g;${interfaceNum}p")
echo "ip=$ip, mac=$mac"
票数 0
EN

Stack Overflow用户

发布于 2013-11-20 14:23:42

也可以使用sed : echo“ip-地址:/sbin/ifconfig | head -2 | grep 'inet ' | tr -s ' ' | cut -d' ' -f3 mac-地址:/sbin/ifconfig | head -1 | tr -s ' ' | cut -d' ' -f5 | tr ':' ' ' | tr 'a-z' 'A-Z'”_ sed -e 's/addr://g‘

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20098214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档