99久久免费国产精品-天天爽夜夜爽夜夜爽-色噜噜久久综合伊人一本-国产无遮挡又黄又爽免费视频

在線客服:  

「南寧煙寒網(wǎng)絡(luò)」提供南寧網(wǎng)站建設(shè)、網(wǎng)站策劃、南寧網(wǎng)頁制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、南寧SEO優(yōu)化、網(wǎng)站維護(hù)、南寧網(wǎng)站優(yōu)化、南寧網(wǎng)站推廣、廣告設(shè)計(jì)等服務(wù)..

咨詢熱線

在線客服

24小時(shí)免費(fèi)咨詢電話:18978941786

客服時(shí)間:上午9:30~下午6點(diǎn)

當(dāng)前位置:首頁>> 技術(shù)文章 >> ASP學(xué)習(xí) >> asp判斷某IP是否屬于某網(wǎng)段的算法

asp判斷某IP是否屬于某網(wǎng)段的算法

收藏 分享 發(fā)布日期:2012-2-12 16:30:50    編輯:admin  文章來源:  點(diǎn)擊率:

有時(shí)候我們需要判斷某一個(gè)ip地址是否屬于一個(gè)網(wǎng)段,以決定該用戶能否訪問系統(tǒng).
比如用戶登錄的IP是218.6.7.7,而我們的程序必須判斷他是否屬于218.6.0.0/16這個(gè)網(wǎng)段(其中/16是新的子網(wǎng)掩碼的表示方式,相當(dāng)于255.255.0.0).
要實(shí)現(xiàn)這樣的功能,現(xiàn)在流行的算法是將218.6.0.0和218.6.7.7按256進(jìn)制換算成10進(jìn)制并進(jìn)行比較得出,如先計(jì)算出218.6.0.0和218.6.255.255的十進(jìn)制:218×256×256×256+6×256×256=3657826304,218×256×256×256+6×256×256+255×256×256+255=3657891839。再計(jì)算出218.6.7.7的十進(jìn):218×256×256×256+6×256×256+7×256+7=3657828103,最后再比較3657828103是否大于等于3657826304和小于等于3657891839。但明顯有一個(gè)問題,計(jì)算量非常多,值非常大,如果IP地址是61開頭的還好,如果是218開頭的,這將會(huì)造成數(shù)據(jù)溢出而出錯(cuò)。
其實(shí)比較IP是否屬于某一網(wǎng)段,最好的方式就是將IP與網(wǎng)段分別轉(zhuǎn)為32位二進(jìn)制,再比較他們的網(wǎng)絡(luò)部分是否相同就可以了.asp本身不具備位運(yùn)行功能,所以要實(shí)現(xiàn)這個(gè)只有我們手工實(shí)現(xiàn),具體如下:
'將十進(jìn)制轉(zhuǎn)為二進(jìn)制字符串
function dec2bin(octNumber)
vara=octNumber
do
dec2bin=cstr(vara mod 2) & dec2bin
vara=vara 2
loop until vara=0
end function

'將二進(jìn)制字符串填充為8位
function pad(str)
pad=right("00000000" & str,8)
end function

'判斷是否是一個(gè)IP地址
function isIp(ipadd)
isIp=false
set oReg=new RegExp
oReg.IgnoreCase=true
oReg.global=true
oReg.Pattern="(d{1,4}.d{1,4}.d{1,4}.d{1,4})|(d{1,4}.d{1,4}.d{1,4}.d{1,4}/d{1,2})"
if oReg.test(ipadd) then isIp=true
set oReg=nothing
end function

'其中UserIP是我們要檢測(cè)的IP
'NetIP是要檢測(cè)的網(wǎng)段或某個(gè)IP,用xxx.xxx.xxx.xxx/N來表示網(wǎng)段,其中N表示子網(wǎng)掩碼位數(shù)
'注,該程序是環(huán)球萬維原創(chuàng)程序,所以如果您要轉(zhuǎn)載,請(qǐng)保留出處信息,謝謝.
'程序設(shè)計(jì):環(huán)球萬維,專業(yè)提供域名注冊(cè),虛擬主機(jī)服務(wù)
'網(wǎng)址:http://www.netInter.cn
'以上信息與文章正文是不可分割的一部分,所以如果您要轉(zhuǎn)載本文章,您必須保留以上信息.

Function check_ip(UserIp,NetIP)
currentip=UserIp
collection_ips=split(iplist,",") '將網(wǎng)絡(luò)按點(diǎn)分割成4段
check_ip=false '初始函數(shù)值,false假設(shè)IP不在這網(wǎng)段
NetIP=trim(NetIP)
slashPos=inStr(NetIP,"/")
if slashPos=0 then '網(wǎng)段沒含有/符號(hào),他只是一個(gè)IP,所以比較比個(gè)字符串是否相同就可以了
if NetIP=currentip then
check_ip=true 'check_ip=true表示IP相等
exit function
end if
else
netRang=mid(NetIP,slashPos+1) '得到/后邊的數(shù)字
if not isNumeric(netRang) then '/后邊不是數(shù)字,格式不正確
exit function
end if
netRang=cint(netRang) '將字符轉(zhuǎn)為數(shù)字
if netRang>31 then
exit function '/后的數(shù)字不能超過32位
end if
ipsets=split(currentip,".") '將用戶IP按點(diǎn)分成四段

C_IP_BIN=pad(dec2bin(ipsets(0))) & pad(dec2bin(ipsets(1))) & pad(dec2bin(ipsets(2))) & pad(dec2bin(ipsets(3)))
'上邊這行是將用戶IP地址手工轉(zhuǎn)換為對(duì)應(yīng)的一個(gè)32個(gè)字符長的二進(jìn)制
ipsets=split(NetIP,".") '按上邊的過程將網(wǎng)段IP同樣轉(zhuǎn)為32個(gè)字符長的二進(jìn)制
sPos=instr(ipsets(3),"/") '最后一點(diǎn)格式應(yīng)該是 數(shù)字/數(shù)字
if sPos=0 then
exit function
end if
ipsets(3)=left(ipsets(3),sPos-1) '得到最后一段/前邊的數(shù)字
S_IP_BIN=pad(dec2bin(ipsets(0))) & pad(dec2bin(ipsets(1))) & pad(dec2bin(ipsets(2))) & pad(dec2bin(ipsets(3)))
'將其轉(zhuǎn)換為32個(gè)字符長的二進(jìn)制
if left(C_IP_BIN,netRang) = left(S_IP_BIN,netRang) then '比較網(wǎng)段絡(luò)是否相同就可以判斷用戶IP否屬于某個(gè)網(wǎng)段了
check_ip=true
end if
end if
end function

應(yīng)用舉例:

要判斷61.139.1.1是否在61.139.0.0/16 (255.255.0.0)這個(gè)網(wǎng)段
只需要簡(jiǎn)單的使用這個(gè)函數(shù)就可以了,如:

if check_ip("61.139.1.1","61.139.0.0/16") then
Response.write "同一網(wǎng)段"
else
Response.write "不是同一網(wǎng)段"
end if

本文章由南寧網(wǎng)站建設(shè)南寧網(wǎng)站優(yōu)化南寧網(wǎng)絡(luò)公司整理,轉(zhuǎn)載請(qǐng)注明出處:http://m.lidajijin.com/

南寧煙寒網(wǎng)絡(luò)竭誠為您免費(fèi)提供南寧網(wǎng)站建設(shè)南寧網(wǎng)站設(shè)計(jì)南寧網(wǎng)站優(yōu)化、維護(hù)以及網(wǎng)站技術(shù)很方面的網(wǎng)絡(luò)服務(wù)!

南寧網(wǎng)站建設(shè)南寧網(wǎng)絡(luò)公司咨詢熱線電話:0771-5306126 18967841786(24小時(shí)全天電話)

煙寒網(wǎng)絡(luò) - 讓你進(jìn)一步走向成功

主站蜘蛛池模板: 欧美精品videosse精子| 手机在线观看av片| 日韩经典午夜福利发布| 久久久噜噜噜久久熟女aa片| 美女禁区a级全片免费观看| 无遮无挡爽爽免费视频| 亚洲av无码日韩av无码导航| 成人欧美日韩一区二区三区 | 亚洲日韩精品无码专区加勒比| 夜夜高潮夜夜爽夜夜爱爱一区| 国产日韩精品一区二区三区在线| 欧美性猛交xxxxxxxx| 国产麻豆剧果冻传媒一区| 久久久久人妻一区精品色欧美| 日韩aⅴ人妻无码一区二区| 国产日韩av免费无码一区二区| 午夜久久久久久禁播电影| 亚洲综合色自拍一区| 亚洲中文字幕成人无码| 亚洲国产精品久久精品成人网站| 国产精品久久久久久福利| 国产 校园 另类 小说区| 欧美饥渴熟妇高潮喷水水| 久久婷婷成人综合色综合| 日韩欧精品无码视频无删节| 在线播放亚洲第一字幕| 精品无码一区二区三区| 中国精学生妹品射精久久| 亚洲欧美日韩综合久久久久| 亚洲色欲色欲大片www无码| 人妻换人妻仑乱| 亚洲性无码一区二区三区| 偷拍激情视频一区二区三区| 芒果乱码国色天香| 噜噜综合亚洲av中文无码| 欧美浓毛大泬视频| 精品无码久久久久国产手机版 | 青青草国产成人99久久| 亚洲av无码成人精品区日韩| 色欲天天天天天综合网| 国产亚洲精品aaaaaaa片|