亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript獲取IP獲取的是IPV6 如何校驗

2019-11-20 09:44:08
字體:
來源:轉載
供稿:網友

1、什么是IPV6?

  這個問題可以去百度或Google找一下,應該會有很大的收獲,其實主要就是為了解決IPV4地址不夠用的問題,V4地址是32位,即:192.168.1.1,而V6地址則是128位,比V4擴大了太多倍。

2、IPV6有子網掩碼嗎?

  可以說有,也可以說沒有,說有呢,是因為在IPV6中有前綴的說法,它相當于IPV4中的子網掩碼,只是名稱不相同了;說沒有呢,也可以,因為IPV6的地址實在是太大了,號稱可以給地球上每個沙子一個地址,這樣就淡化了子網的概念,不需要了。

3、IPV6的地址

  IPV6地址寫法在網上也可以查到很多很多,我就不詳細列了,一般如下:1205::fff0:ffd1:1021/120,后面的120就是代表了前綴,相當于IPV4中的子網掩碼。

4、IP地址的計算方式

  IPV6和IPV4的網段計算方式一樣,對于IPV4而言,如192.168.1.1/255.255.255.0,那么它的網段是從192.168.1.0~192.168.1.255,這個是怎么計算出來的呢?根據ISP的規定,它的起始地址為:此IP地址和子網掩碼按位與運算求得;它的終止地址為:此IP地址和子網掩碼的取反(不包含符號位)按位或運算求得。

  IPV6也和IPV4在原理上是一樣的,因為IPV6前綴太長了,所以根本無法用255.255.255.0的形式表達出來,因此通常直接寫數字,如120或128等。120代表此前綴的前120位都是1,后面的則是0,這個前綴就相當于IPV4中的子網掩碼,計算IPV6地址和IPV4一樣。

上面已經將IPV6的簡要知識說明了一下,下面來處理下IPV6網址。

IPV6的網址寫法上需要兼容零壓縮法,因此需要對IPV6的網址進行轉換,下面是JS的轉換代碼:

function transitIp(ipaddr)//將IPV6地址補全{ var ipaddress = ipaddr.split("/"); var ipaddrs = ipaddress[0].split(":"); if(ipaddrs.length<8) { var count = 0; for(var i=0;i<ipaddrs.length;i++) { if(ipaddrs[i]=="") { if(count==1) {  ipaddrs[i] = addZero(4);  continue; } ipaddrs[i] = addZero((9-ipaddrs.length)*4); count++; } else { ipaddrs[i] += ":"; } } } else if(ipaddrs.length==8) { for(var i=0;i<8;i++) { ipaddrs[i] += ":"; } } ////上述補齊完成,將內容放置于ipaddrs中,但不標準 return initaddr(ipaddrs);//獲得了ip地址的完整字符串}function addZero(num){ var zerostr = ""; for(var i=1;i<num+1;i++) { zerostr+="0"; if(i%4==0) { zerostr+=":"; } } return zerostr;}function initaddr(ipaddrs){ var iparray =""; for(var i=0;i<ipaddrs.length;i++) { iparray+=ipaddrs[i]; } if(iparray.charAt(iparray.length-1)==':') { iparray = iparray.substr(0,iparray.length-1); } //var iparrays = iparray.split(":"); //return iparrays; return iparray;}

IPV6地址判斷的正則表達式為:

function isIPv6(str)//IPV6地址判斷 {  return /:/.test(str)  &&str.match(/:/g).length<8 &&/::/.test(str) ?(str.match(/::/g).length==1 &&/^::$|^(::)?([/da-f]{1,4}(:|::))*[/da-f]{1,4}(:|::)?$/i.test(str)) :/^([/da-f]{1,4}:){7}[/da-f]{1,4}$/i.test(str);}

接著我們說明下IPV4到IPV6的轉換:

IPV4到IPV6網址的轉換很簡單,只需將IPV4地址轉為十六進制格式,以兩段為一組,然后再前面添加::ffff即可

JS代碼如下:

function four2six(fouraddr,fourmask)//IPV4轉IPV6,包括地址和掩碼{ var reg = fouraddr.match(/^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])$/); if(reg==null) { alert("IP地址不正確!"); return; } if(fourmask.indexOf(".")!=-1) { reg = fourmask.match(/^(254|252|248|240|224|192|128|0)/.0/.0/.0$|^(255/.(254|252|248|240|224|192|128|0)/.0/.0)$|^(255/.255/.(254|252|248|240|224|192|128|0)/.0)$|^(255/.255/.255/.(255|254|252|248|240|224|192|128|0))$/); if(reg==null) { alert("子網掩碼不正確!"); return; } } else { var mask = parseInt(fourmask, 10); if(mask<0 || mask > 32) { alert("子網掩碼不正確!"); return; } } /*** IPV4轉IPV6的方法很簡單 1、先將其每段轉為16進制 2、不足兩位的前面添加0 3、V4一共會產生4個16進制數字,比前兩個和后兩個分別組合 4、地址前面加上"0000:0000:0000:0000:0000:ffff:"即可 **/ var sixtemp = ""; var fouraddrs = fouraddr.split("."); for (var i=0; i<fouraddrs.length; i++) { var addr4ip = parseInt(fouraddrs[i], 10); var addrtemp = addr4ip.toString(16); if(addrtemp.length==1) { addrtemp = "0" + addrtemp; } sixtemp += addrtemp; if(i==1) { sixtemp += ":"; } } //以上產生V6地址段正確 sixtemp = "0000:0000:0000:0000:0000:ffff:" + sixtemp; /*** 下面處理子網掩碼,子網掩碼可以有兩種寫法,數字或者255.255.255.0寫法 1、第一種處理比較簡單,只需此數值加96(128-32)即可 2、第二種需要分為四段,每段轉為2進制,看哪一位最開始變為0 **/ var masktemp = 96; if(fourmask.indexOf(".")==-1) { masktemp += parseInt(fourmask); } else { var masks = fourmask.split("."); for ( var i=0; i<masks.length; i++) { var mask4ip = parseInt(masks[i], 10); var mask4temp = mask4ip.toString(2); if(mask4temp.length!=8) { for(var j=0;j<8-mask4temp;j++) {  mask4temp = "0"+mask4temp; } } //下面判斷位置 var flagtemp = false; for(var j=0;j<8;j++) { if(mask4temp.charAt(j)=='0') {  flagtemp = true;  masktemp += i*8 + j;  break; } if(j==7&&i==3) {  flagtemp = true;  masktemp = 128;  break; } } if(flagtemp) { break; } } } return sixtemp + "/" + masktemp;}function four2sixip(fouraddr)//IPV4轉IPV6,只轉地址{ var reg = fouraddr.match(/^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])$/); if(reg==null) { alert("IP地址不正確!"); return; } var sixtemp = ""; var fouraddrs = fouraddr.split("."); for (var i=0; i<fouraddrs.length; i++) { var addr4ip = parseInt(fouraddrs[i], 10); var addrtemp = addr4ip.toString(16); if(addrtemp.length==1) { addrtemp = "0" + addrtemp; } sixtemp += addrtemp; if(i==1) { sixtemp += ":"; } } //以上產生V6地址段正確 sixtemp = "0000:0000:0000:0000:0000:ffff:" + sixtemp; return sixtemp;}

當然在上面的方法中包含了,對IPV4地址和掩碼的正則判斷,支持掩碼以255.255.255.0的形式以及/32的形式兩種。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产女人18毛片水18精品| 欧美自拍大量在线观看| 成人免费视频在线观看超级碰| 伊人久久大香线蕉av一区二区| 成人黄色短视频在线观看| 精品小视频在线| 6080yy精品一区二区三区| 欧美国产精品人人做人人爱| 国产视频福利一区| 国产一区二区免费| 国产精品三级在线| 欧美一级淫片aaaaaaa视频| 日韩成人在线观看| 成人免费看片视频| 亚洲成人1234| 欧美日韩亚洲精品内裤| 成人网在线视频| 欧洲亚洲免费视频| 国产69精品99久久久久久宅男| 97久久久免费福利网址| 成人免费看吃奶视频网站| 亚洲一区二区久久| 亚洲精品xxx| 美日韩精品免费视频| 亚洲天堂日韩电影| 久久精品国产久精国产思思| 久久99热精品这里久久精品| 欧美精品videos另类日本| 国产精品久久久久久久9999| 国产精品久久久久久久午夜| 日本高清视频精品| 欧美日韩国产成人| 精品国产依人香蕉在线精品| 欧美在线视频网站| 精品国产区一区二区三区在线观看| 亚洲免费一在线| 国产欧美一区二区三区久久人妖| 久久久久久久久久久av| 日韩精品999| 久久久女女女女999久久| 国产亚洲美女精品久久久| 亚洲精品白浆高清久久久久久| 91久久国产综合久久91精品网站| 一区二区在线免费视频| 欧美电影免费观看网站| 亚洲国产精品成人av| 亚洲xxx视频| 欧美激情一区二区三区在线视频观看| 超碰日本道色综合久久综合| 欧美精品在线网站| 国产精品视频成人| 日韩av片电影专区| 一区二区三区久久精品| 久久精品国产久精国产一老狼| 精品久久久久久亚洲精品| 日本久久久久久久久久久| 538国产精品视频一区二区| 亚洲国产欧美在线成人app| 欧美插天视频在线播放| 国产成人综合一区二区三区| 日韩欧美黄色动漫| 国产欧美在线播放| 国产成人免费av| 国语自产偷拍精品视频偷| 亚洲欧美日韩久久久久久| 成人精品久久av网站| 久久久免费电影| 国产区亚洲区欧美区| 91亚洲人电影| 96pao国产成视频永久免费| 亚洲精品永久免费精品| 68精品国产免费久久久久久婷婷| 91精品国产综合久久久久久蜜臀| 中文字幕综合一区| 成人免费看吃奶视频网站| 久久久久久九九九| 国产精品欧美久久久| 精品国产91久久久久久老师| 精品久久久久久中文字幕大豆网| 日韩久久免费电影| 欧美性猛交xxxx乱大交蜜桃| 97国产suv精品一区二区62| 欧美在线日韩在线| 日韩在线视频线视频免费网站| 亚洲午夜精品视频| 亚洲欧洲高清在线| 亚洲美女在线看| 国内精品久久久| 狠狠操狠狠色综合网| 国色天香2019中文字幕在线观看| 中文在线不卡视频| 国产精品久久久av| 国产精品成人aaaaa网站| 欧洲精品久久久| 欧美激情一区二区三区在线视频观看| 久久久在线免费观看| 91色精品视频在线| 国产91精品不卡视频| 日本欧美一二三区| 国产亚洲欧洲高清| 国产精品亚洲一区二区三区| 久久久久久这里只有精品| 国产中文欧美精品| 最近更新的2019中文字幕| 日韩成人av在线| 亚洲欧洲午夜一线一品| 美女啪啪无遮挡免费久久网站| 亚洲欧美资源在线| 国产精品国产三级国产专播精品人| 国产精品私拍pans大尺度在线| 国产91久久婷婷一区二区| 国产精品27p| 日韩视频免费看| 久久精品视频99| 这里只有精品久久| 亚洲国产精品小视频| 91欧美精品午夜性色福利在线| 91免费精品国偷自产在线| 亚洲一区中文字幕在线观看| 欧美在线观看网站| 97视频com| 国产精品专区第二| 97福利一区二区| 狠狠躁天天躁日日躁欧美| 中文字幕日韩欧美在线视频| 日日狠狠久久偷偷四色综合免费| 亚洲第五色综合网| 欧美性感美女h网站在线观看免费| 久久久久久久久久国产精品| 高清欧美一区二区三区| 日韩av三级在线观看| www国产精品视频| 国产精品中文字幕在线| 热久久视久久精品18亚洲精品| 91日韩在线视频| 国产精品免费网站| 日韩欧美国产骚| 亚洲欧美日韩在线高清直播| 国产婷婷成人久久av免费高清| 搡老女人一区二区三区视频tv| 欧美视频二区36p| 九九热这里只有精品6| 亚洲成人网在线| 最好看的2019年中文视频| 在线性视频日韩欧美| 国产精品一区二区三区免费视频| 亚洲视屏在线播放| 亚洲欧美日韩中文在线| 91香蕉嫩草影院入口| 91九色视频在线| 日韩一区二区在线视频| 久久久久久高潮国产精品视| 欧美在线视频一区二区| 久久久久国色av免费观看性色| 日韩欧美大尺度| 全色精品综合影院| 国产精自产拍久久久久久蜜| 成人高清视频观看www| 国产成人精品视频在线观看| 日韩美女中文字幕| 国产99视频在线观看| 日韩av理论片| 午夜精品www| 亚洲精品久久久久中文字幕二区|