㈠ 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相等";
}
?>