澳门新葡萄京官网注册将IP地址转换为整型数字的PHP方法、Asp方法和MsSQL方法、MySQL方法

第后生可畏我们要先领悟一下IP地址调换为整型(严酷来讲应该算得长整型State of Qatar的规律~

【转变原理】:如果IP为:w.x.y.z,则IP地址转为整型数字的总结公式为:intIP
= 256*256*256*w + 256*256*x + 256*y + z

【转换原理】:只要IP为:w.x.y.z,则IP地址转为整型数字的计算公式为:intIP
= 256*256*256*w + 256*256*x + 256*y + z

【PHP的互转】:PHP的转移方式比较容易,它内置了八个函数

【PHP的互转】:PHP的调换情势比较简单,它内置了多少个函数
int ip2long ( string $ip_address )和 string long2ip ( string
$proper_address )
能够平昔调用使用~

int ip2long ( string $ip_address State of Qatar //ip转变到整型数值
string long2ip ( string $proper_address State of Qatar //
整型数值调换到ip【MySQL的互转】:绝对于MsSQL来讲MySQL的退换格局比较简单,它和PHP同样也置于了多个函数

【Asp的互转】:自定义函数如下,
‘.———————————————————–.
‘|  describtion: 将IP转换为int型数字                           |
‘|      Authors: abandonship()            |
‘~———————————————————–~
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: 将int型数字调换为IP                           |
‘|      Authors: abandonship()            |
‘~———————————————————–~
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

IP 转为整型:

【MsSQL的互转】:自定义函数如下, /***************************************************************
 * 将IP转换为int型数字                         |
 * Code CreateBy abandonship()        |
 **************************************************************/
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(1*256*256*256 as bigint)  
  union all select 1*256*256  
  union all select 1*256  
  union all select 1
 ) as T
 return (@nIp)
END 

select INET_ATON
(IP地址卡塔尔国整型数值转变到IP

/***************************************************************
 * 将int型数字转变为IP                         |
 * Code CreateBy abandonship()        |
 **************************************************************/
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(1*256*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 

select INET_NTOA ( IP的整型数值 卡塔尔国

【MySQL的互转】:相持于MsSQL来讲MySQL的更改方式比较简单,它和PHP同样也置于了多个函数
IP转为整型: select INET_ATON (IP地址卡塔尔(قطر‎ 和 整型转为IP: select INET_NTOA
( IP的整型数值 卡塔尔国
能够从来调用使用~

一个实例

1.手工业本人的落到实处方式

 代码如下

 function ip2number($ip)
      {

          $t = explode(‘.’,
$ip);
          $x = 0;
          for ($i = 0; $i < 4; $i++)

          {
              $x = $x * 256 + $t[$i];

          }
          return $x;

      }

function number2ip($num)

      {
          $t = $num;
          $a = array();

          for ($i = 0; $i < 4; $i++)
          {
              $x = $t % 256;
              if($x < 0) $x += 256;
              array_unshift($a, $x);
              $t = intval($t / 256);
          }
          return implode(‘.’, $a);
 }

发表评论

电子邮件地址不会被公开。 必填项已用*标注