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')
}

结果将显示如下:
复制代码 代码如下: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的详细理解,可以参数下面几个例子:
复制代码 代码如下:#二进制
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,IP地址转换成二进制

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“PowerShell把IP地址转换成二进制的方法”
暂无“PowerShell把IP地址转换成二进制的方法”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。