首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~
【转换原理】假设IP为wxyz则IP地址转为整型数字的计算公式为intIP = ***w + **x + *y + z
【PHP的互转】PHP的转换方式比较简单它内置了两个函数
int iplong ( string $ip_address )和 string longip ( string $proper_address )
可以直接调用使用~
【Asp的互转】自定义函数如下
| describtion: 将IP转换为int型数字 |
| Authors: abandonship|
~~
Function IPNum(ByVal strIP)
Dim nIP
Dim nIndex
Dim arrIP
arrIP = Split(strIP "" )
For nIndex = To
If Not nIndex = Then
arrIP(nIndex) = arrIP(nIndex) * ( ^ ( nIndex))
End If
nIP = nIP + arrIP(nIndex)
Next
IPNum = nIP
End Function
| describtion: 将int型数字转换为IP |
| Authors: abandonship|
~~
Function NumIP(ByVal nIP)
Dim strIP
Dim nTemp
Dim nIndex
For nIndex = To Step
nTemp = Int(nIP / ( ^ nIndex))
strIP = strIP & nTemp & ""
nIP = nIP (nTemp * ( ^ nIndex))
Next
strIP = Left(strIP Len(strIP) )
NumIP = strIP
End Function
【MsSQL的互转】自定义函数如下
/***************************************************************
*将IP转换为int型数字 |
*Code CreateBy abandonship|
**************************************************************/
CREATE FUNCTION [dbo][ipToInt](
@strIp varchar()
)RETURNS bigint
AS
BEGIN
declare @nIp bigint
set @nIp =
select
@nIp = @nIp + LEFT( @strIp charindex(@strIp+))*Id
from(
select Id = cast(*** as bigint)
union all select **
union all select *
union all select
) as T
return (@nIp)
END
/***************************************************************
*将int型数字转换为IP |
*Code CreateBy abandonship|
**************************************************************/
CREATE FUNCTION [dbo][intToIP](
@nIp bigint
)RETURNS varchar()
As
BEGIN
declare @strIp varchar()
set @strIp =
select
@strIp = @strIp ++ cast(@nIp/ID as varchar) @nIp = @nIp%ID
from(
select ID = cast(*** as bigint)
union all select **
union all select *
union all select
) as T
return(stuff(@strIp))
END
【MySQL的互转】相对于MsSQL来说MySQL的转换方式比较简单它和PHP一样也内置了两个函数
IP转为整型: select INET_ATON (IP地址) 和 整型转为IP: select INET_NTOA ( IP的整型数值 )
可以直接调用使用~