㈠ php 怎样判断一个ip地址是否可以连接,比如说:192.168.0.1可以访问,192.168.0.115不能访问
一般的局域网内都用192.168开头.
ip的通用形式是:xxx.xxx.xxx.xxx
xxx的大小不能超过256.并且根据xxx的大小范围,对ip分了类.
192.168.开头的就是c类网.
如果有网关,一般是192.168.0.1
也就是说,局域网内ip不能直接连到互联网上,要通过这个网关地址的服务器才能连出去.
互联网上有很多局域网,192.168.开头的ip可以多次被使用(但同一局域网内的ip不能重复).
㈡ PHP判断IP是中国IP还是外国IP
//返回ip所在的区域外国ip精确到国名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能获取";
}
}catch(Exception$e){
return"未能获取";
}
}
㈢ 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);
㈣ PHP怎么判断两个IP地址是否相等
这个很简单,直接把两个IP地址进行 == 判断就行了:如下
<?php
header('Content-Type:text/html;charset=utf-8');
$ip1="192.168.0.11";
$ip2="192.168.0.22";
/*
还有如果觉得这两个判断不行,比较多余的做法就是直接把两个IP进行md5加密之后在进行比对
if(md5(trim($ip1))==md5(trim($ip2))){
*/
if(trim($ip1)==trim($ip2)){
echo"两个IP相等";
}else{
echo"两个不相IP相等";
}
?>