CIDR計算をしたり、CIDR範囲を展開したり。
ここらへんをPowerShellで取り扱う方法をしらべた際に、.Netを利用した手法は色々とありましたが。
PowerShellギャラリーで公開されている、Indented.Net.IP
モジュールが自分が欲しかった機能を提供していて、CIDR計算をする時に便利なのでご紹介。
ドキュメント
今回試している環境
- Windows 10 21H2
- Powershell 7.4.0-preview.4
- Indented.Net.IP v 6.3.2
インストール
PowerShellギャラリーで公開されているので、下記コマンドでCurrentユーザのスコープにインストールできます。
Install-Module -Name Indented.Net.IP -Scope CurrentUser
`
## インストールされるコマンド
インストールされるコマンドは下記で確認できます。
Get-Command -Module Indented.Net.IP
Get-NetworkSummary
個人的にこのモジュールで一番使っているコマンドレット
下記のようにCIDR
を渡すと範囲を返してくれます。
サブネットをどう分割するか考えながら、確認のためにこのコマンドを叩くと便利です。
Get-NetworkRange
資料などを作る際に、CIDR範囲のIP一覧が欲しいときなどはこのコマンドレットを利用します。
CIDR
を渡すとIPの一覧を返してくれます。
ConvertTo-Mask
マスク長を入力すると255.255.255.224
といった形で返してくれます。
瞬時に計算できる人以外は普通に便利です。
ConvertTo-Subnet
StartとEndのIPを渡すと、近い範囲のサブネットを計算してくれます。
総評
だいたい作業しているときはWindows Terminal
が起動していて、四則演算だったりちょっとした計算はPowreShell上で実行していたりするので、そんな人はそれらと同様にPowerShell上でちょっとCIDR計算ができるとだいぶ便利かと思います。