PowerShell中把IP转换为长整形数字的方法


IPv4的地址其实可以换成为一个长整形的数字,使用数字类型来表示IP地址时,可以非常方便的进行地址范围的匹配比较。在.NET开发环境中一个IPAddress类,它的Address属性就是十进制的数字,而IPAddressToString属性是我们熟悉的点分十进制的字符串形式。

下面两个过滤器,分别处理“点分十进制”字符串到数字的转换和数字到“点分十进制”的转换。

//“点分十进制”字符串到数字的转换

filter Convert-IP2Decimal

{

   ([IPAddress][String]([IPAddress]$_)).Address

}

//数字到“点分十进制”的转换 filter Convert-Decimal2IP { ([System.Net.IPAddress]$_).IPAddressToString }


使用的时候,把这两个filter导入到当前环境中,然后再使用管道执行。
PS C:Documents and SettingsAdministrator> filter Convert-IP2Decimal

>> {

>>     ([IPAddress][String]([IPAddress]$_)).Address

>> }

>>

PS C:Documents and SettingsAdministrator>

PS C:Documents and SettingsAdministrator> filter Convert-Decimal2IP

>> {

>> ([System.Net.IPAddress]$_).IPAddressToString

>> }

>>

测试转换效果:
PS C:Documents and SettingsAdministrator> "192.168.0.1" | Convert-IP2Decimal

16820416

PS C:Documents and SettingsAdministrator> 16820416 | Convert-Decimal2IP

192.168.0.1

PS C:Documents and SettingsAdministrator>

PowerShell读取文件内容、替换文件内容、读取限定行的例子
我只能说,使用PowerShell来读取文本文件实在是一件太简单的事情了。Get-Content,获取指定位置的项的内容。语法:Get-Content[-Path]文件路径[-Path]由方括号

PowerShell中使用Test-Path命令检查文件或文件夹路径是否存在示例
检查文件或文件夹路径是否存在,在编程中是经常用到的功能。PowerShell对于这个需求提供了一个非常便捷的cmdlet,那就是Test-Path!呵呵,看个名字,你

PowerShell遍历文件、文件夹的方法
PowerShell遍历文件夹下的子文件夹和文件是一件很容易的事儿。Get-ChildItem这个cmdlet就有一个recurse参数是用于遍历文件夹的。PowerShell中,使用Get-ChildItem