PowerShell把IP地址轉換成二進制的方法
更新時間:2014年08月11日 09:15:07 投稿:junjie
這篇文章主要介紹了PowerShell把IP地址轉換成二進制的方法,在一些IP判斷的場合經常使用的小技巧,需要的朋友可以參考下
IPv4地址其實是32位二進制數字,然后我們將它分成四段,每段8位。8位二進制能表達的范圍是0~255,所以點分十進制的每一個數字的取值都在0~255之間。有的時候,比如為了換算子網掩碼,我們需要將IP地址還原成二進制串的形式,如:11000000101010000000110000100001。今天小編看到一個例子就是來完成這個操作的。
代碼如下:
復制代碼 代碼如下:
$ipV4 = '192.168.12.33'
-join ($ipV4.Split('.') | ForEach-Object {[System.Convert]::ToString($_,2).PadLeft(8,'0')})
#-join是把多個結果對象或數組元素組合在一起輸出。
結果將顯示為:
復制代碼 代碼如下:
11000000101010000000110000100001
我們也可以修改一下程序,分別顯示出每一段的轉換后的形式:
復制代碼 代碼如下:
$ipV4.Split('.') | ForEach-Object {
'{0,5} : {1}' -f $_, [System.Convert]::ToString($_,2).PadLeft(8,'0')
}
'{0,5} : {1}' -f $_, [System.Convert]::ToString($_,2).PadLeft(8,'0')
}
結果將顯示如下:
復制代碼 代碼如下:
192 : 11000000
168 : 10101000
12 : 00001100
33 : 00100001
168 : 10101000
12 : 00001100
33 : 00100001
最后補充說明一下這一句“[System.Convert]::ToString($_,2)”的理解。首先$_表示當前循環(huán)變量,把一個點分十進制的IP使用Split方法打散后,每個循環(huán)變量就是各個數字了,即192、168、12、33。而“[System.Convert]::ToString($_,2)”的意思是把這些數字轉換為二進制的字符串。關于[System.Convert]::ToString的詳細理解,可以參數下面幾個例子:
復制代碼 代碼如下:
#二進制
PS C:\Users\小編> [System.Convert]::ToString(16,2);
10000
#八進制
PS C:\Users\小編> [System.Convert]::ToString(16,8);
20
#十進制
PS C:\Users\小編> [System.Convert]::ToString(16,10);
16
#十六進制
PS C:\Users\小編> [System.Convert]::ToString(16,16);
10
PS C:\Users\小編> [System.Convert]::ToString(16,2);
10000
#八進制
PS C:\Users\小編> [System.Convert]::ToString(16,8);
20
#十進制
PS C:\Users\小編> [System.Convert]::ToString(16,10);
16
#十六進制
PS C:\Users\小編> [System.Convert]::ToString(16,16);
10
相關文章
PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧
這篇文章主要介紹了PowerShell中的特殊變量$null介紹和創(chuàng)建多行注釋小技巧,需要的朋友可以參考下2014-08-08Powershell小技巧之使用Copy-Item添加程序到開機啟動
本文主要記錄了本人安裝office2013后遇到的一個小需求,然后用powershell實現了這個功能,特此記錄下,并附上copy-item的使用方法2014-09-09Windows Powershell創(chuàng)建對象
.Net類型中的方法功能很強大。可以通過類型的構造函數創(chuàng)建新的對象,也可以將已存在的對象轉換成指定的類型。2014-10-10PowerShell中使用Filter來創(chuàng)建管道輸入函數
這篇文章主要介紹了PowerShell中使用Filter來創(chuàng)建管道輸入函數,Filter創(chuàng)建的函數跟Function創(chuàng)建的函數,在本質上是一樣的,需要的朋友可以參考下2014-07-07