本文目錄一覽:
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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/290914.html