php計算網段內所有IP,分配子網段

2022-08-29 01:45:09 字數 1332 閱讀 3211

由於最近業務需要,寫了個獲取網段內所有ip的函式,以及分配可用子網段的函式

/*

* * 根據網段獲取計算所有ip

* @param string $segment 網段 '139.217.0.1/24'

* @return array ip列表 ['139.217.0.1','139.217.0.2'……] */

function getipbysegment($segment

)

$iparray = array

();

for ($beginip[0] = $beginiparray[0]; $beginip[0] <= $endip[0]; $beginip[0]++) }}

}return

$iparray

;}

/*

* * 在指定網段中分配子網段

* @param string $segment 指定網段

* @param int $ipnum 需要的ip數

* @param array $usediparray 不可用(已經使用)的ip,預設為空陣列

* @return bool|string 成功則返回分配的網段 */

function allocatesegment($segment, $ipnum, $usediparray =)

$newmask = 32 - $i

;

//大網段的開始和結束ip

$segmentinfo = explode("/", $segment);//

['139.217.0.1',24]

$beginiparray = explode(".", $segmentinfo[0]);//

[139,217,0,1]

$mask = intval($segmentinfo['1']);//

24if ($newmask

< $mask

)

$endip = array

();

$step =;

foreach ($beginiparray

as$ipkey => $item

)

//遍歷生成網段

for ($beginip[0] = $beginiparray[0]; $beginip[0] <= $endip[0]; $beginip[0] += $step[0]) }}

if ($canuse

) }}}

}return

false

;}

IP分配及網段劃分

1 ip我們先來了解一下3類常用的 a類ip段 0.0.0.0 到127.255.255.255 b類ip段 128.0.0.0 到191.255.255.255 c類ip段 192.0.0.0 到223.255.255.255 預設分配的子網掩碼每段只有255或0 類的預設子網掩碼 255.0.0...

IP分配及網段劃分

ip我們先來了解一下3類常用的 a類ip段 0.0.0.0 到127.255.255.255 b類ip段 128.0.0.0 到191.255.255.255 c類ip段 192.0.0.0 到223.255.255.255 計算可用ip個數?將子網掩碼轉換成二進位制,進行計算,如下 255.0.0...

IP網段計算和劃分

先了解基礎運算 異或運算 相同為0,不同為1 與運算 兩者為1時為1,有0為0 或運算 有1為1 ip網段的計算和劃分 ip和子網掩碼 我們都知道,是由四段數字組成,在此,我們先來了解一下3類常用的 a類ip段 0.0.0.0 到127.255.255.255 b類ip段 128.0.0.0 到19...