First, we need to first understand the principle of converting an IP address to an integer (in strict terms, it should be a long integer ~
[Conversion principle ]:Assume that the IP address is w. x. y. z, the formula for converting the IP address to an integer is: intIP = 256*256*256 * w + 256*256 * x + 256 * y + z
[PHP interaction ]:PHP is easy to convert. It has two built-in functions.
Int ip2long (string $ ip_address) and string long2ip (string $ proper_address)
Can be called directly ~
[Asp interchange ]:The custom functions are as follows,
'.-----------------------------------------------------------.
'| Describtion: converts an IP address to an int number. |
'| Authors: abandonship (http://jb51.net) |
'~ -----------------------------------------------------------~
Function IP2Num (ByVal strIP)
Dim nIP
Dim nIndex
Dim arrIP
ArrIP = Split (strIP, ".", 4)
For nIndex = 0 To 3
If Not nIndex = 3 Then
ArrIP (nIndex) = arrIP (nIndex) * (256 ^ (3-nIndex ))
End If
NIP = nIP + arrIP (nIndex)
Next
IP2Num = nIP
End Function
'.-----------------------------------------------------------.
'| Describtion: converts int-type numbers to IP addresses. |
'| Authors: abandonship (http://jb51.net) |
'~ -----------------------------------------------------------~
Function Num2IP (ByVal nIP)
Dim strIP
Dim nTemp
Dim nIndex
For nIndex = 3 To 0 Step-1
NTemp = Int (nIP/(256 ^ nIndex ))
StrIP = strIP & nTemp &"."
NIP = nIP-(nTemp * (256 ^ nIndex ))
Next
StrIP = Left (strIP, Len (strIP)-1)
Num2IP = strIP
End Function
[MsSQL interchange]: custom functions are as follows,
/*************************************** ************************
* Convert an IP address to an int number |
* Code CreateBy abandonship (http://jb51.net) |
**************************************** **********************/
Create function [dbo]. [ipToInt] (
@ StrIp varchar (15)
) RETURNS bigint
AS
BEGIN
Declare @ nIp bigint
Set @ nIp = 0
Select
@ NIp = @ nIp + LEFT (@ strIp, charindex ('.', @ strIp + '.')-1) * Id
From (
Select Id = cast (1x256*256*256 as bigint)
Union all select 1*256*256
Union all select 1*256
Union all select 1
) As T
Return (@ nIp)
END
/*************************************** ************************
* Convert int-type numbers to IP addresses |
* Code CreateBy abandonship (http://jb51.net) |
**************************************** **********************/
Create function [dbo]. [intToIP] (
@ NIp bigint
) RETURNS varchar (15)
As
BEGIN
Declare @ strIp varchar (15)
Set @ strIp =''
Select
@ StrIp = @ strIp + '.' + cast (@ nIp/ID as varchar), @ nIp = @ nIp % ID
From (
Select ID = cast (1x256*256*256 as bigint)
Union all select 1*256*256
Union all select 1*256
Union all select 1
) As T
Return (stuff (@ strIp, 1,1 ,''))
END
[MySQL interchange ]:Compared with MsSQL, MySQL converts data in a simple way. Like PHP, MySQL also has two built-in functions.
Convert IP to integer: select INET_ATON (IP address) and convert integer to IP: select INET_NTOA (integer value of IP address)
Can be called directly ~