成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PHP判斷某個IP4是否屬于某一個IP段的方法-創(chuàng)新互聯(lián)

小編給大家分享一下PHP判斷某個IP4是否屬于某一個IP段的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),岳麓企業(yè)網(wǎng)站建設(shè),岳麓品牌網(wǎng)站建設(shè),網(wǎng)站定制,岳麓網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,岳麓網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

                                                           

很多時候,我們需要做 IP 黑名單或者 IP 白名單,來對訪客進行限制,很常見的一種就是對同一 IP 段內(nèi)的所有 IP 進行允許或限制,那么就我們就需要知道訪客 IP 是否屬于該 IP 段范圍內(nèi)。本文僅記錄一下方法。

其實本文還有一個應(yīng)用場景,就是通常存儲在數(shù)據(jù)庫中的 IP 地址都是 varchar 類型的,而如果采用 INT 類型來保存 IP ,則可以對數(shù)據(jù)庫起到優(yōu)化的作用,當(dāng)然這里只是針對 IP4 進行講解。

判斷一個 IP 是否屬于某一個 IP 段,思路就是將 IP 轉(zhuǎn)換成 int 類型的數(shù)值,然后進行比較。而在 PHP 中內(nèi)置了 ip 和數(shù)值的互換的函數(shù):ip2long($ip_addr) 和 long2ip($long)。

ip2long($ip_addr)中若 $ip_addr 不是有效的 IP 地址,則會返回 false,若是有效的 IP 地址,則會將其轉(zhuǎn)換為有符號 long 類型,而有些時候 IP 地址轉(zhuǎn)換后可能會超出有符號的 long 長度,這樣會導(dǎo)致出現(xiàn)負(fù)數(shù)。

long 類型是 4 個字節(jié)的,其有符號范圍是:2147483647 ~ -2147483648,無符號的范圍是:4294967295 ~ 0

而大的 IP4 地址是:255.255.255.255,對應(yīng)的數(shù)值是:4294967295,所以可以將其轉(zhuǎn)成無符號的數(shù)值。2147483647 數(shù)值對應(yīng)的 IP 為:127.255.255.255,

long2ip(2147483647)所以 IP 地址在 0.0.0.0 至 127.255.255.255 范圍內(nèi)的不會出現(xiàn)負(fù)數(shù),而在 128.0.0.0 至 255.255.255.255 范圍內(nèi)的會出現(xiàn)負(fù)數(shù)情況。

以下代碼給出了一個完整、正確的判斷指定 IP 是否屬于某 IP 段內(nèi)的小例子。

$start_ip = "42.236.184.1";
$end_ip   = "42.236.184.255";
$ip = "42.236.184.128";
check_ip($ip,$start_ip,$end_ip);
function check_ip($ip,$start_ip,$end_ip)
{
$ip = get_ip2long($ip);
$start_ip = get_ip2long($start_ip);
$end_ip = get_ip2long($end_ip);
if($ip >= $start_ip && $ip <= $end_ip)
{
return true;
}
return false;
}
// decbin() 十進制轉(zhuǎn)二進制
// bindec() 二進制轉(zhuǎn)十進制。函數(shù)將一個二進制數(shù)轉(zhuǎn)換成 integer??赊D(zhuǎn)換的大的數(shù)為 31 位 1 或者說十進制的 2147483647。PHP 4.1.0 開始,該函數(shù)可以處理大數(shù)值,這種情況下,它會返回 float 類型。
function get_ip2long($ip)
{
return bindec(decbin(ip2long($ip)));
//方法二:return sprintf('%u',ip2long($ip)); //%u:不包含正負(fù)號的十進制數(shù)
}

看完了這篇文章,相信你對PHP判斷某個IP4是否屬于某一個IP段的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章標(biāo)題:PHP判斷某個IP4是否屬于某一個IP段的方法-創(chuàng)新互聯(lián)
URL分享:http://jinyejixie.com/article38/dcjcpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化、網(wǎng)站建設(shè)、軟件開發(fā)、營銷型網(wǎng)站建設(shè)面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
双江| 铜川市| 当阳市| 丹江口市| 墨江| 师宗县| 乡宁县| 海宁市| 建始县| 屯留县| 星座| 大城县| 沛县| 吕梁市| 星座| 沅江市| 冷水江市| 昌图县| 丹东市| 安平县| 合作市| 临武县| 左权县| 普宁市| 扶沟县| 乌拉特后旗| 资阳市| 安平县| 微山县| 英超| 呼和浩特市| 墨江| 鄂尔多斯市| 临泽县| 龙岩市| 武隆县| 马关县| 简阳市| 石棉县| 黄石市| 安仁县|