在powershell中提取ipv4和ipv6

时间:2015-07-16 12:46:10

标签: powershell

好吧我是PowerShell的新手,所以我做了一个简单的练习,从ipconfig命令中提取ipv4和v6。我正在起诉这个命令

$ip = (ipconfig | select-string ipv4) -split ":",2 | select -last 1

我无法相信抓住ipv4并分配给var是如此困难。有没有人知道更简单的方法?

由于

1 个答案:

答案 0 :(得分:1)

简单的oneliner:

^(?![0,.]+$)\d{1,3}(?:,\d{3})*(\.\d{1,2})?$

对于Windows 8 + / Server 2012+,使用本机命令,本地系统仅在远程系统上运行这些命令时应该单独回答:

$ipv4 = ( Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $env:COMPUTERNAME | Where-Object { $_.IPaddress -ne $null } | Where-Object { $_.Description -match 'VirtualBox' } ).IPAddress[0]
$ipv6 = ( Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $env:COMPUTERNAME | Where-Object { $_.IPaddress -ne $null } | Where-Object { $_.Description -match 'VirtualBox' } ).IPAddress[1]

不要使用[System.Net.DNS]类: http://blog.tyang.org/2011/04/15/problem-with-dns-name-resolution-when-using-system-net-dns-class/

P.S。看起来你使用旧的DOS / CMD'让我们从Poweshell的输出'方法中过滤掉一些字符串,然后将cmd工具与Powershell混合使用。这两种做法都很糟糕,但这是另一个故事。