源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PowerShell把IP地址转换成二进制的方法

  • 时间:2020-03-26 19:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PowerShell把IP地址转换成二进制的方法
IPv4地址其实是32位二进制数字,然后我们将它分成四段,每段8位。8位二进制能表达的范围是0~255,所以点分十进制的每一个数字的取值都在0~255之间。有的时候,比如为了换算子网掩码,我们需要将IP地址还原成二进制串的形式,如:11000000101010000000110000100001。今天小编看到一个例子就是来完成这个操作的。 代码如下:
[u]复制代码[/u] 代码如下:
$ipV4 = '192.168.12.33' -join ($ipV4.Split('.') | ForEach-Object {[System.Convert]::ToString($_,2).PadLeft(8,'0')}) #-join是把多个结果对象或数组元素组合在一起输出。
结果将显示为:
[u]复制代码[/u] 代码如下:
11000000101010000000110000100001
我们也可以修改一下程序,分别显示出每一段的转换后的形式:
[u]复制代码[/u] 代码如下:
$ipV4.Split('.') | ForEach-Object {    '{0,5} : {1}' -f $_, [System.Convert]::ToString($_,2).PadLeft(8,'0') }
结果将显示如下:
[u]复制代码[/u] 代码如下:
192 : 11000000  168 : 10101000   12 : 00001100   33 : 00100001
  最后补充说明一下这一句“[System.Convert]::ToString($_,2)”的理解。首先$_表示当前循环变量,把一个点分十进制的IP使用Split方法打散后,每个循环变量就是各个数字了,即192、168、12、33。而“[System.Convert]::ToString($_,2)”的意思是把这些数字转换为二进制的字符串。关于[System.Convert]::ToString的详细理解,可以参数下面几个例子:
[u]复制代码[/u] 代码如下:
#二进制 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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部