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 Settings\Administrator> filter Convert-IP2Decimal
>> {
>>     ([IPAddress][String]([IPAddress]$_)).Address
>> }
>>
PS C:\Documents and Settings\Administrator>
PS C:\Documents and Settings\Administrator> filter Convert-Decimal2IP
>> {
>> ([System.Net.IPAddress]$_).IPAddressToString
>> }
>>

测试转换效果:

代码如下:

PS C:\Documents and Settings\Administrator> "192.168.0.1" | Convert-IP2Decimal
16820416
PS C:\Documents and Settings\Administrator> 16820416 | Convert-Decimal2IP
192.168.0.1
PS C:\Documents and Settings\Administrator>

(0)

相关推荐

  • PowerShell脚本实现网卡DHCP自动获取IP地址、设置静态IP地址的方法

    PowerShell设置DHCP自动获取IP地址,PowerShell可以很方便的设置本地计算机启用DHCP来动态获取IP地址,这需要用到WMI扩展.本文介绍详细的脚本程序. PowerShell设置DHCP自动获取IP地址 PowerShell可以很方便的设置本地计算机启用DHCP来动态获取IP地址,这需要用到WMI扩展.本文介绍详细的脚本程序. 第一步,使用Get-WmiObject来获取到指定的网卡配置对象 复制代码 代码如下: $netAdp = gwmi win32_networkad

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

    IPv4地址其实是32位二进制数字,然后我们将它分成四段,每段8位.8位二进制能表达的范围是0~255,所以点分十进制的每一个数字的取值都在0~255之间.有的时候,比如为了换算子网掩码,我们需要将IP地址还原成二进制串的形式,如:11000000101010000000110000100001.今天小编看到一个例子就是来完成这个操作的. 代码如下: 复制代码 代码如下: $ipV4 = '192.168.12.33' -join ($ipV4.Split('.') | ForEach-Obje

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

    IPv4的地址其实可以换成为一个长整形的数字,使用数字类型来表示IP地址时,可以非常方便的进行地址范围的匹配比较.在.NET开发环境中一个IPAddress类,它的Address属性就是十进制的数字,而IPAddressToString属性是我们熟悉的点分十进制的字符串形式. 下面两个过滤器,分别处理"点分十进制"字符串到数字的转换和数字到"点分十进制"的转换. 复制代码 代码如下: //"点分十进制"字符串到数字的转换 filter Conve

  • js中使用正则表达式查找字母和数字的方法

    废话不多说,先看下js中使用正则查找字母和数字的方法,具体代码如下所示: <!DOCTYPE HTML> <html > <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload=function(){ localStorage.fiveData="

  • PHP查找数组中只出现一次的数字实现方法【查找特定元素】

    本文实例讲述了PHP查找数组中只出现一次的数字实现方法.分享给大家供大家参考,具体如下: 问题: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 实现代码如下: <?php function FindNumsAppearOnce($array) { // write code here // return list, 比如[a,b],其中ab是出现一次的两个数字 $count = array_count_values($array); foreach

  • Android开发中TextView文本过长滚动显示实现方法分析

    本文实例讲述了Android开发中TextView文本过长滚动显示实现方法.分享给大家供大家参考,具体如下: 项目中在使用TextView时,总会有因要显示的内容过多而需要我们进行处理的问题.我们第一时间想到的是TextView的android:ellipsize属性,比如 android:ellipsize="end",效果是在文字的尾部打三个小点. 但是这个属性要配合android:singLine="true"使用.通常来说,要实现尾端三个点的省略号形式是比较

  • C#获取真实IP地址(IP转为长整形、判断是否内网IP的方法)

    今天查看登录日志,发现http_x_forwarded_for获取到的ip地址有些是内网ip地址,有些则是公网和内网ip地址一起获取到,用逗号分隔开,日志截图如下: 之前获取ip地址的C#代码如下: 复制代码 代码如下: /// <summary>     /// C#获取客户端真实IP地址     /// </summary>     /// <returns></returns>     public static string GetIP()    

  • PowerShell中直接输出转义字符或变量名称的方法

    本文介绍在PowerShell的字符串中,如何禁止字符串中某分字符被转义或部分字符被当作变量,即让字符串中所有的字符都原样输出. 在PowerShell中,转义字符是以字符(·)开头的一部分特殊字符,可以用于实现换行.TAB等功能.而变量则是以符号($)开头,代表一个值.之前的文章中我们介绍过转义字符,也介绍过在字符串中包含变量.有兴趣的朋友可以去了解一下. 在PowerShell中可以用一对双引号引起一个字符串,也可以使用一对单引号引起一个字符串.而用单引号与双引号最大的一个区别是,双引号引起

  • PowerShell中以管理员权限启动应用程序的方法

    又一个PowerShell比CMD好的地方.在CMD中用管理员权限来启动应用程序很复杂,但在PowerShell中就简单多了,如下: 复制代码 代码如下: Start-Process notepad -Verb runas Start-Process "$PSHOME\powershell.exe" -Verb runas

  • PowerShell中查询错误编号信息的2个方法

    有时候,一些本地命令,比如net.exe,在执行过程中,会返回数字编号形式的错误信息.很郁闷的是,我们不知道这些数字代表什么意思.以前,我们可以使用如下的方式去获取数字代表的信息: 复制代码 代码如下: PS> net helpmsg 3534 The service did not report an error. PS> net helpmsg 1 Incorrect function. PS> net helpmsg 4323 The transport cannot access

  • 字符串中找出连续最长的数字字符串的实例代码

    复制代码 代码如下: //1. 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个串的长度返回, //并把这个最长数字串付给其中一个函数参数outputstr所指内存. //例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789 #include<stdio.

  • 将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法

    首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~ [转换原理]:假设IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP = 256*256*256*w + 256*256*x + 256*y + z [PHP的互转]:PHP的转换方式比较简单,它内置了两个函数int ip2long ( string $ip_address )和 string long2ip ( string $proper_address )可以直接调用使用~ [Asp的互转]:自定

随机推荐