是否有更簡單的方法來實現我的小技巧?更新IP地址子網內的特定八位字節
$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"
是否有更簡單的方法來實現我的小技巧?更新IP地址子網內的特定八位字節
$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"
$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)的八位位組的最大值。 它還允許您在第一行中提供基本字符串作爲輸入。這可以用一個變量代替。請注意,這不會'檢查'子網掩碼的有效性,因爲只有特定的值才能構成有效的子網掩碼。
感謝您使用此代碼段,它可能會提供一些即時幫助。通過展示*爲什麼*這是一個很好的解決方案,對未來的讀者會有更好的解決方案,這將爲它的教育價值提供一個合適的解釋[//大大提高](// meta.stackexchange.com/q/114762)但不完全相同的問題。請編輯您的答案以添加解釋,並指出適用的限制和假設。 –
'「$([ipaddress](([ipaddress] $ ipsubnet).Address + 0x10000))」'如果3rd num小於255 – wOxxOm
不知道該類型存在,謝謝! –
如果您不知道網絡掩碼,我會建議您不要這樣做。 –