更新IP地址子网中的特定八位字节

时间:2017-06-20 09:48:51

标签: powershell

是否有更短的方法来实现我的小动作?

$ipsubnet来自以下格式:X.X.X.0我想在第三个X上添加+1,例如X.X.(X+1).0

$tmp = $ipsubnet -replace '..$', ''
$tmp -match '.$'
$tmp2 = [int]$Matches[0]+1
$tmp =  $tmp -replace '.$', '$tmp2'
$ipsubnet = $tmp + ".0"

1 个答案:

答案 0 :(得分:0)

$sm = "255.255.48.0".Split('.')
if([int]$sm[2] -lt 255) { $sm[2]=([int]$sm[2]+1).ToString(); }
$sm = $sm -join "."
$sm

此答案将考虑第二行if语句中子网掩码(255)中八位字节的最大值。 它还允许您在第一行中提供基本字符串作为输入。这可以用变量代替。请注意,这不是检查'子网掩码的有效性,因为只有特定的值才能构成有效的子网掩码。