文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>【VB.NET】IP地址与INTEGER之间互转

【VB.NET】IP地址与INTEGER之间互转

时间:2010-11-14  来源:夜闻香

 

下面的函数支持输出为INT或UINT类型,但实际上IP存储在INT和UINT内的数据在内存里的结构都是一样的,不过貌似SQL只支持INT结构的数据库,当然,请根据你自己的使用目的来选择函数。

 

Imports System.Reflection
Imports System.Net

#Region "IP与INT互转"

''' <summary>将ip地址转换为int</summary>
Shared Function m_ip2int(ByVal ipads As String) As Integer
Dim ret As Integer = 0, b As Integer = 0
Dim mc As Match = Regex.Match(ipads, "(\d+).(\d+).(\d+).(\d+)")
If Not mc.Success Then Return 0
For i As Integer = 1 To 4
ret
<<= 8
b
= mc.Groups(i).Value
If b > Byte.MaxValue Then Return 0
ret
+= b
Next
Return ret
End Function
Shared Function m_ip2int(ByVal ipads As IPAddress) As Integer
Dim bs As Byte() = ipads.GetAddressBytes
If bs.Length <> 4 Then Return 0
Dim ret As Integer = 0
For Each i As Byte In bs
ret
<<= 8
ret
+= i
Next
Return ret
End Function
''' <summary>将int转换为ip地址</summary>
Shared Function m_int2ip(ByVal ipint As Integer) As String
Dim ret(3) As Byte
Dim b As Integer = 255
For i As Integer = 0 To 3
ret(i)
= ipint And b
ipint
>>= 8
Next
Return String.Format("{3}.{2}.{1}.{0}", ret(0), ret(1), ret(2), ret(3))
End Function

''' <summary>将ip地址转换为uint</summary>
Shared Function m_ip2uint(ByVal ip As String) As UInteger
Dim bs As Byte() = IPAddress.Parse(ip).GetAddressBytes
Return CUInt(bs(3)) + (CUInt(bs(2)) << 8) + (CUInt(bs(1)) << 16) + (CUInt(bs(0)) << 24)
End Function
''' <summary>将uint转换为ip地址</summary>
Shared Function m_uint2ip(ByVal ip As UInteger) As String
Return New IPAddress(ip).ToString
End Function

''' <summary>将ip地址转换为int</summary>
Shared Function m_IpToUInt(ByVal ip As String) As UInteger
Dim bs As Byte() = IPAddress.Parse(ip).GetAddressBytes
Return CUInt(bs(3)) + (CUInt(bs(2)) << 8) + (CUInt(bs(1)) << 16) + (CUInt(bs(0)) << 24)
End Function
''' <summary>将uint转换为ip地址</summary>
Shared Function m_UIntToIP(ByVal ip As UInteger) As String
Return New IPAddress(ip).ToString
End Function

#End Region

 

相关阅读 更多 +
排行榜 更多 +
梦幻甜心蛋糕店手游 v1.0 安卓版

梦幻甜心蛋糕店手游 v1.0 安卓版

休闲益智 下载
狙击手血战鬼子 v8081.23.10.7 安卓版

狙击手血战鬼子 v8081.23.10.7 安卓版

休闲益智 下载
狙击手血战鬼子 v8081.23.10.7 安卓版

狙击手血战鬼子 v8081.23.10.7 安卓版

休闲益智 下载