如何从命令行复制和解析ip地址?

时间:2016-03-29 19:51:34

标签: cmd gruntjs ip

我使用Grunt运行任务,并运行命令,我需要我的IP地址作为脚本。我找到了一些解决方案,但没有一个能满足我的需求,而且由于我对Command Line的经验不足而无法创建一个解决方案。

其中一个解决方案是:

ipconfig | find "IPv4" | CLIP

但结果是:

IPv4 Address. . . . . . . . . . . : 192.168.xxx.xx

我需要的是:

192.168.xxx.xx

3 个答案:

答案 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