十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先我们要先了解一下IP地址转换为整型(严格来说应该说是长整型)的原理~
成都创新互联公司是一家以网站建设公司、网页设计、品牌设计、软件运维、营销推广、小程序App开发等移动开发为一体互联网公司。已累计为成都混凝土搅拌机等众行业中小客户提供优质的互联网建站和软件开发服务。
【转换原理】 假设IP为 w x y z 则IP地址转为整型数字的计算公式为 intIP = * * *w + * *x + *y + z
【PHP的互转】 PHP的转换方式比较简单 它内置了两个函数 int ip long ( string $ip_address )和 string long ip ( string $proper_address ) 可以直接调用使用~
【Asp的互转】 自定义函数如下 | describtion: 将IP转换为int型数字 | | Authors: abandonship| ~ ~ Function IP Num(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 IP Num = nIP End Function | describtion: 将int型数字转换为IP | | Authors: abandonship| ~ ~ Function Num IP(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) ) Num IP = 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
lishixinzhi/Article/program/PHP/201311/21328
?php
$ip = $_SERVER["REMOTE_ADDR"]; // 获取客户端IP
$longip = ip2long($ip);
// 程序员通常将 IP 转换成整形写入数据库
// 读取的时候再把它转成标准的 IP 地址
$ip = long2ip($longip);
echo 'pre';
print_r(array($longip = $ip));
?
浮点转换成整型有三种函数
1、floor ( float value) 舍去法取整又称向下取整,将小数部分舍去取整
?php
echo floor(6.1); //结果是6
echo floor(6.9);//结果是6
?
2、ceil 进一法取整,有小数部分则进一位
?php
echo ceil(6.1); //结果是7
echo ceil(6.9);//结果是7
?
3、round 浮点数进行四舍五入
?php
echo round(6.1); //结果是6
echo round(6.9);//结果是7
?
假设这个数组是$arr,
则方法如下:
for($i=0;$icount($arr);$i++)
{
$arr[$i] = intval($arr[$i]);
}
这样子就能把字符型转换成数字型数组