本文目录一览:
php 怎样将有范围的ip转化为整型范围
?php
$ip = $_SERVER["REMOTE_ADDR"]; // 获取客户端IP
$longip = ip2long($ip);
// 程序员通常将 IP 转换成整形写入数据库
// 读取的时候再把它转成标准的 IP 地址
$ip = long2ip($longip);
echo 'pre';
print_r(array($longip = $ip));
?
php怎样把ip地址转化为坐标
转化不了。只能根据ip获取地理位置,并不能转化为经纬度。如今的ip性质还没办法做到
PHP通过掩码和IP计算IP地址段
不知道你要的IP地址段是IP地址列表,还是只要一个起始地址,我就当你是前一种的意思,如果你只是要范围的话也很简单,下面有代码自己改了。
首先说一点,从你贴出的内容来看,你对子网掩码还是存在误解,至少我可以肯定的告诉你,255.0.240.0 绝对不会是一个有效的子网掩码。如果你不清楚的话,可以百度下,百科里面有很详细的讲解,我就不班门弄斧了。下面是代码,你可以根据需要进行修改(如果有难以理解的,可以先了解下什么是子网掩码):
// $ip是IP地址,$subnetMask是子网掩码的IP地址
function getSubNetIPList($ip, $subnetMask)
{
// 将ip地址和子网掩码转换为整数
$ipNum = ip2long($ip);
$subnetMaskNum = ip2long($subnetMask);
// 下面的计算需要必须能够了解子网掩码的相关知识
// 计算网络号对应的整数(此地址为此网段的起始地址,但是是表示网段,所以不能分给主机使用)
$netNum = ($ipNum $subnetMaskNum);
// 计算网段结束IP地址(此地址此网段的结束IP地址,但是是广播地址,所以不能分给主机使用)
$broadcastIPNum = $netNum | (~$subnetMaskNum);
// 所以,我们知道,能够使用的IP地址是由网络号加1,知道广播地址减1
// 那么,可用的IP地址列表就很简单了
$ipAddrs = array();
for ($num = $netNum + 1; $num = $broadcastIPNum - 1; $num++) {
$ipAddrs[] = long2ip($num);
}
return $ipAddrs;
}
$ips = getSubNetIPList("219.244.64.0", "255.255.248.0");
print_r($ips);