php進(jìn)行ip地址掩碼運(yùn)算處理的方法
本文實(shí)例講述了php進(jìn)行ip地址掩碼運(yùn)算處理的方法。分享給大家供大家參考,具體如下:
ip解析:
function ip_parse($ip_str) { $mark_len = 32; if (strpos($ip_str, "/") > 0) { list($ip_str, $mark_len) = explode("/", $ip_str); } $ip = ip2long($ip_str); $mark = 0xFFFFFFFF << (32 - $mark_len) & 0xFFFFFFFF; $ip_start = $ip & $mark; $ip_end = $ip | (~$mark) & 0xFFFFFFFF; return array($ip, $mark, $ip_start, $ip_end); } //演示: list($ip, $mark, $ip_start, $ip_end) = ip_parse("192.168.1.12/24"); echo "IP地址 : ", long2ip($ip), "\n"; echo "子網(wǎng)掩碼: ", long2ip($mark), "\n"; echo "IP段開(kāi)始: ", long2ip($ip_start), "\n"; echo "IP段結(jié)束: ", long2ip($ip_end), "\n";
結(jié)果:
IP地址 : 192.168.1.12 子網(wǎng)掩碼: 255.255.255.0 IP段開(kāi)始: 192.168.1.0 IP段結(jié)束: 192.168.1.255
ip是否在ip分段中:
function ip_in($ip, $ip_str) { $mark_len = 32; if (strpos($ip_str, "/") > 0) { list($ip_str, $mark_len) = explode("/", $ip_str); } $right_len = 32 - $mark_len; return ip2long($ip) >> $right_len == ip2long($ip_str) >> $right_len; } //演示: var_dump(ip_in("192.168.1.1", "192.168.1.0/24"));
PS:這里再為大家提供一個(gè)在線(xiàn)子網(wǎng)掩碼計(jì)算工具供大家參考使用:
在線(xiàn)網(wǎng)絡(luò)計(jì)算器|TCP/IP子網(wǎng)掩碼計(jì)算與換算工具:
http://tools.jb51.net/aideddesign/ipcalc
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php文件操作總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- js驗(yàn)證IP及子網(wǎng)掩碼的合法性有效性示例
- js針對(duì)ip地址、子網(wǎng)掩碼、網(wǎng)關(guān)的邏輯性判斷
- JS驗(yàn)證IP,子網(wǎng)掩碼,網(wǎng)關(guān)和MAC的方法
- JavaScript在ASP頁(yè)面中實(shí)現(xiàn)掩碼文本框效果代碼
- PHP函數(shù)篇詳解十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換函數(shù)說(shuō)明
- php 實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換(二進(jìn)制、八進(jìn)制、十六進(jìn)制)互相轉(zhuǎn)換實(shí)現(xiàn)代碼
- PHP實(shí)現(xiàn)十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制轉(zhuǎn)換相關(guān)函數(shù)用法分析
- php將字符串轉(zhuǎn)換成16進(jìn)制的方法
- PHP進(jìn)制轉(zhuǎn)換實(shí)例分析(2,8,16,36,64進(jìn)制至10進(jìn)制相互轉(zhuǎn)換)
- php和js實(shí)現(xiàn)根據(jù)子網(wǎng)掩碼和ip計(jì)算子網(wǎng)功能示例
相關(guān)文章
PHP設(shè)計(jì)模式之觀(guān)察者模式淺析
觀(guān)察者模式是極其重要的一個(gè)設(shè)計(jì)模式,也是我?guī)啄觊_(kāi)發(fā)過(guò)程中使用最多的設(shè)計(jì)模式,本文首先概述觀(guān)察者模式的基本概念和Demo實(shí)現(xiàn),接著是觀(guān)察者模式在Java和Spring中的應(yīng)用,最后是對(duì)觀(guān)察者模式的應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)進(jìn)行總結(jié)2023-04-04PHP中new static() 和 new self() 的區(qū)別介紹
這篇文章主要介紹了PHP中new static() 和 new self() 的區(qū)別介紹,需要的朋友可以參考下2015-01-01php 命名空間(namespace)原理與用法實(shí)例小結(jié)
這篇文章主要介紹了php 命名空間(namespace)原理與用法,結(jié)合實(shí)例形式總結(jié)分析了PHP命名空間的相關(guān)概念、原理、基本使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-11-11php自定義函數(shù)實(shí)現(xiàn)二維數(shù)組按指定key排序的方法
這篇文章主要介紹了php自定義函數(shù)實(shí)現(xiàn)二維數(shù)組按指定key排序的方法,通過(guò)自定義函數(shù)實(shí)現(xiàn)二維數(shù)組按照指定鍵值進(jìn)行排序的功能,涉及數(shù)組的遍歷與判定相關(guān)操作技巧,需要的朋友可以參考下2016-09-09php實(shí)現(xiàn)比較全的數(shù)據(jù)庫(kù)操作類(lèi)
這篇文章主要介紹了php實(shí)現(xiàn)比較全的數(shù)據(jù)庫(kù)操作類(lèi),可實(shí)現(xiàn)基本的數(shù)據(jù)庫(kù)連接、執(zhí)行SQL語(yǔ)句及錯(cuò)誤提示等相關(guān)技巧,需要的朋友可以參考下2015-06-06PHP實(shí)現(xiàn)截取中文字符串不出現(xiàn)?號(hào)的解決方法
這篇文章主要介紹了PHP實(shí)現(xiàn)截取中文字符串不出現(xiàn)?號(hào)的解決方法,涉及php字符串遍歷及編碼轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2016-12-12PHP常用函數(shù)總結(jié)(180多個(gè))
這篇文章主要介紹了PHP常用函數(shù)總結(jié)(160多個(gè)),需要的朋友可以參考下2016-12-12