1. Was ist IPv6?
Sie können nach diesem Problem in Baidu oder Google suchen und erhalten viele Vorteile. In der Tat ist es hauptsächlich, das Problem unzureichender IPv4 -Adressen zu lösen. Die V4 -Adresse beträgt 32 Bit, dh 192.168.1.1, während die V6 -Adresse 128 Bit beträgt, was viel größer als V4 ist.
2. Hat IPv6 eine Subnetzmaske?
Es kann gesagt werden, dass es gibt oder dass es keine gibt. Es liegt daran, dass es in IPv6 ein Präfix gibt. Es entspricht der Subnetzmaske in IPv4, aber die Namen sind unterschiedlich. Es wird gesagt, dass es keine oder das gibt, weil die Adresse von IPv6 zu groß ist und dass es jedem Sand auf der Erde eine Adresse geben kann, die das Konzept des Subnetzes verblasst und es nicht mehr benötigt.
3. IPv6 -Adresse
Die IPv6 -Adress -Schreibmethode kann auch im Internet gefunden werden, sodass ich sie im Allgemeinen nicht im Allgemeinen wie folgt aufliste: 1205 :: FFFF0: FFD1: 1021/120, Letzterer 120 repräsentiert das Präfix, das der Subnetzmaske in IPv4 entspricht.
4. Berechnen Sie die IP -Adresse
Die Berechnungsmethode von IPv6 und IPv4 ist gleich. Für IPv4 beispielsweise 192.168.1.1/255.255.255.0 wird das Netzwerksegment von 192.168.1.0 ~ 192.168.1.255 berechnet. Wie wird das berechnet? Nach den Bestimmungen des ISP lautet die Startadresse: Diese IP -Adresse und Subnetzmaske werden nach Bit und Betrieb erhalten; Die Endadresse lautet: Diese IP -Adresse und Subnetzmaske sind in Bit oder Betrieb.
IPv6 ist im Prinzip auch das gleiche wie IPv4. Da das IPv6 -Präfix zu lang ist, kann er nicht in Form von 255.255.255.0 ausgedrückt werden, sodass die Zahlen normalerweise direkt geschrieben werden, wie z. Die Berechnung der IPv6 -Adresse ist die gleiche wie IPv4.
Die oben genannten hat das kurze Wissen von IPv6 erläutert, und wir werden uns mit der IPv6 -Website befassen.
Die URL von IPv6 muss mit der Null -Komprimierungsmethode kompatibel sein, sodass die URL von IPv6 konvertiert werden muss. Das Folgende ist der JS -Conversion -Code:
Funktion transitip (ipaddr) // IPv6 -Adresse {var ipaddress = ipaddr.split ("/"); var iPadDrs = ipaddress [0] .Split (":"); if (ipaddrs.length <8) {var count = 0; für (var i = 0; i <ipaddrs.length; i ++) {if (ipaddrs [i] == "") {if (count == 1) {ipaddrs [i] = addZero (4); weitermachen; } ipaddrs [i] = adzero ((9-ipaddrs.length)*4); zählen ++; } else {ipaddrs [i] += ":"; }}} else if (ipaddrs.length == 8) {für (var i = 0; i <8; i ++) {ipaddrs [i]+= ":"; }} //// Die obige Fertigstellung ist abgeschlossen, der Inhalt wird in iPadDRs platziert, aber es handelt sich nicht um Standard -Rückgabe -InitAddr (iPadDRs); // Die vollständige Zeichenfolge der IP -Adresse wird erhalten} Funktion addZero (num) {var zeroStr = ""; für (var i = 1; i <num+1; i ++) {zerostr+= "0"; if (i%4 == 0) {Zerostr+= ":"; }} return ZeroStr;} Funktion initAddr (ipaddrs) {var iparray = ""; für (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 (":"); // Iparrays zurückgeben; Iparray zurückgeben;}Der reguläre Ausdruck für das IPv6 -Adressurteil lautet:
Funktion ISIPv6 (str) // IPv6 Adressurteil {return /:/.test(str) && str.match (/:/g) .Length <8 &&/::/. test (str)? (str.match (/::/g) .Length == 1 &&/^:: $ |^(::)? ([/da-f] {1,4} (: | ::))*[/da-f] {1,4} (::)?Lassen Sie uns als nächstes die Konvertierung von IPv4 in IPv6 erläutern:
Die Konvertierung von IPv4 in IPv6 -URLs ist sehr einfach. Konvertieren Sie einfach die IPv4 -Adresse in das hexadezimale Format, nehmen Sie zwei Segmente in eine Gruppe und fügen Sie dann vor ihr :: FFFF hinzu.
Der JS -Code lautet wie folgt:
Funktion four2Six (FourAddr, Fourmask) // IPv4 bis IPv6, einschließlich Adresse und Maske {var reg = Fouraddr.match (/^(/d {1,2} | 1/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 -Adresse ist falsch!"); zurückkehren; } 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/. (255 | 254 | 252 | 248 | 240 | 224 | 192 | 128 | 0)/. 0) $ | if (reg == null) {alert ("Subnetzmaske ist falsch!"); zurückkehren; }} else {var mask = parseInt (Fourmask, 10); if (mask <0 || mask> 32) {alert ("Subnetzmaske ist falsch!"); zurückkehren; }} /*** Die Methode zum Konvertieren von IPv4 in IPv6 ist sehr einfach. 1. Zuerst konvertieren Sie jedes Segment in hexadezimal 2. Add 0 vor weniger als zwei Ziffern 3. V4 erzeugt insgesamt 4 Hexadezimalstellen, die mit den ersten zwei und den letzten beiden kombiniert werden. "0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: ffff:" **/ var Sechp = ""; var fouraddrs = fourAddr.split ("."); für (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; } SEXTEMP += addrtemp; if (i == 1) {sechtemp += ":"; }} // Das obige generierte V6 -Adresssegment ist korrekt. /*** Die Subnetzmaske kann unten verarbeitet werden. Es gibt zwei Möglichkeiten, Subnetzmasken, Anzahl oder 255.255.255.0 zu schreiben. 1. Die erste Methode ist relativ einfach zu verarbeiten. Fügen Sie diesem Wert einfach 96 (128-32) hinzu. 2. Der zweite Typ muss in vier Segmente unterteilt werden. Jedes Segment wird in Binärum umgewandelt, und sehen Sie, welches Bit zu Beginn 0 wird. **/ var masktemp = 96; if (Fourmask.Indexof (".") ==-1) {maskTemp += parseInt (Fourmask); } else {var masks = firmask.split ("."); für (var i = 0; i <masken.length; i ++) {var mask4ip = parseInt (masken [i], 10); var mask4temp = mask4ip.toString (2); if (mask4temp.length! }} // Folgendes ist eine Position var fightTemp = false; für (var j = 0; j <8; j ++) {if (mask4temp.charat (j) == '0') {fightTemp = true; maskTemp + = i*8 + j; brechen; } if (j == 7 && i == 3) {fightTemp = true; maskTemp = 128; brechen; }} if (fightTemp) {break; }}} return sethemp + "/" + maskTemp;} Funktion four2Sixip (fourAddr) // ipv4 bis ipv6, nur um {var reg = zu adressieren Fouraddr.match (/^(/d {1,2} | 1/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 -Adresse ist falsch!"); zurückkehren; } var sechtemp = ""; var fouraddrs = fourAddr.split ("."); für (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; } SEXTEMP += addrtemp; if (i == 1) {sechtemp += ":"; }} // Das obige V6 -Adresssegment ist korrekt kehren Sie sechstemp;} zurückNatürlich enthält die obige Methode eine regelmäßige Beurteilung von IPv4 -Adresse und -Mask und unterstützt zwei Arten von Masken in Form von 255.255.255.0 und /32.