我使用Grunt运行任务,并运行命令,我需要我的IP地址作为脚本。我找到了一些解决方案,但没有一个能满足我的需求,而且由于我对Command Line的经验不足而无法创建一个解决方案。
其中一个解决方案是:
ipconfig | find "IPv4" | CLIP
但结果是:
IPv4 Address. . . . . . . . . . . : 192.168.xxx.xx
我需要的是:
192.168.xxx.xx
答案 0 :(得分:1)
获取由过滤行的冒号分隔的第二个标记,并将其设置为变量。在第二步中删除空格。
for /f "tokens=2 delims=:" %i in ('ipconfig ^|find "IPv4"') do set ip=%i
set ip=%ip: =%
echo ip=%ip%
答案 1 :(得分:1)
您可以使用 grep 只过滤您关心的行,使用 awk 来解析行。
例如,假设您关心 ipv4 和 ipv6(enp5s0 是我的接口):
$ ifconfig enp5s0 | grep 'inet' | awk '{ print $2 }'
192.168.0.101
fe80::74c2:d0b8:5fa8:59fb
或者您可能只关心 IPv4 - grep 中的简单更改,您就可以得到:
$ ifconfig enp5s0 | grep 'inet ' | awk '{ print $2 }'
192.168.0.10
或者只有 IPv6:
$ ifconfig enp5s0 | grep 'inet6' | awk '{ print $2 }'
fe80::74c2:d0b8:5fa8:59fb
同样,如果您不想更改过滤的行但想更改单行的解析,则可以更改 awk:
获取 IPv4 掩码:
$ ifconfig enp5s0 | grep 'inet ' | awk '{ print $4 }'
255.255.255.0
或同时使用 ip 和掩码:
$ ifconfig enp5s0 | grep 'inet ' | awk '{ print $2; print $4 }'
192.168.0.101
255.255.255.0
等等。
答案 2 :(得分:1)
简单命令:
ipconfig getifaddr en0