1. ما هو IPv6؟
يمكنك البحث عن هذه المشكلة على Baidu أو Google ، وستحصل على الكثير من الفوائد. في الواقع ، فإنه يتمثل بشكل أساسي في حل مشكلة عدم كفاية عناوين IPv4. عنوان V4 هو 32 بت ، أي 192.168.1.1 ، في حين أن عنوان V6 هو 128 بت ، وهو أكبر بكثير من V4.
2. هل يحتوي IPv6 على قناع شبكة فرعية؟
يمكن القول أن هناك ، أو أن هناك لا. ذلك لأن هناك بادئة في IPv6. إنه يعادل قناع الشبكة الفرعية في IPv4 ، لكن الأسماء مختلفة ؛ يقال أنه لا يوجد ، أو ذلك ، لأن عنوان IPv6 كبير جدًا ، ويقال إنه يمكن أن يعطي كل رمل على الأرض عنوانًا ، والذي سيتلاشى مفهوم الشبكة الفرعية ولم يعد بحاجة إليه.
3. عنوان IPv6
يمكن أيضًا العثور على طريقة كتابة عنوان IPv6 على الإنترنت ، لذلك لن أدرجها بالتفصيل ، بشكل عام على النحو التالي: 1205 :: FFFF0: 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 ، وما إلى ذلك. حساب عنوان IPv6 هو نفسه IPv4.
أوضح ما ورد أعلاه المعرفة الموجزة لـ IPv6 ، وسنتعامل مع موقع IPv6.
يجب أن يكون عنوان URL الخاص بـ IPv6 متوافقًا مع طريقة ضغط صفرية ، لذلك يجب تحويل عنوان URL لـ IPv6. فيما يلي رمز تحويل JS:
وظيفة transitip (ipaddr) // إكمال عنوان IPv6 {var ipaddress = ipaddr.split ("/") ؛ var ipaddrs = ipaddress [0] .split (":") ؛ if (ipaddrs.length <8) {var count = 0 ؛ لـ (var i = 0 ؛ i <ipaddrs.length ؛ i ++) {if (ipaddrs [i] == "") {if (count == 1) {ipaddrs [i] = addzero (4) ؛ يكمل؛ } ipaddrs [i] = addzero ((9-ipaddrs.length)*4) ؛ count ++ ؛ } آخر {ipaddrs [i] += ":" ؛ }}} آخر إذا (ipaddrs.length == 8) {for (var i = 0 ؛ i <8 ؛ i ++) {ipaddrs [i]+= ":" ؛ }} /// يتم الانتهاء من الإكمال أعلاه ، يتم وضع المحتوى في iPaddrs ، لكنه ليس عائدًا قياسيًا initaddr (ipaddrs) ؛ // يتم الحصول على السلسلة الكاملة لعنوان IP addzero (num) {var ZeroStr = "" ؛ لـ (var i = 1 ؛ i <num+1 ؛ i ++) {ZeroStr+= "0" ؛ if (i ٪ 4 == 0) {ZeroStr+= ":" ؛ }} return ZeroStr ؛} initAdDr (ipaddrs) {var iparray = "" ؛ لـ (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 ؛ إرجاع iparray ؛}التعبير العادي لحكم عنوان IPv6 هو:
دالة ISIPV6 (str) // IPv6 عنوان عنوان {return /:/.test(str) && str.match (/:/g) &&/^:: $ |^(::)؟ ([/da-f] {1،4} (: | ::))*[/da-f] {1،4} (:بعد ذلك ، دعنا نوضح التحويل من IPv4 إلى IPv6:
تحويل عناوين URL IPv4 إلى IPv6 بسيط للغاية. ما عليك سوى تحويل عنوان IPv4 إلى تنسيق سداسي عشري ، واتخاذ قسمين إلى مجموعة ، ثم أضف :: ffff قبل ذلك.
رمز JS كما يلي:
الوظيفة 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 غير صحيح!") ؛ يعود؛ } 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)/. 255/.255/. (255 | 254 | 252 | 248 | 240 | 224 | 192 | 128 | 0)/. 0) $ |^(255/.255/.255/. (255 | 254 | 252 | if (reg == null) {Alert ("قناع الشبكة الفرعية غير صحيح!") ؛ يعود؛ }} آخر {var mask = parseint (Fourmask ، 10) ؛ if (Mask <0 || Mask> 32) {Alert ("قناع الشبكة الفرعية غير صحيح!") ؛ يعود؛ }} /*** طريقة تحويل IPv4 إلى IPv6 بسيطة للغاية 1. قم أولاً بتحويل كل جزء إلى سداسي عشري 2. أضف 0 قبل أقل من رقمين 3. ستنتج V4 ما مجموعه 4 أرقام سداسية ، والتي يتم دمجها مع الأولين والأخير على التوالي 4. "0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0000: FFFF:" **/ var Sixtemp = "" ؛ var fouraDdrs = fouraddr.split (".") ؛ لـ (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: 0000: 0000: 0000: FFFF:" + Sixtemp ؛ /*** يمكن معالجة قناع الشبكة الفرعية أدناه. هناك طريقتان لكتابة أقنعة الشبكة الفرعية ، أو رقم 255.255.255.0 1. الطريقة الأولى بسيطة نسبيا للمعالجة. فقط أضف 96 (128-32) لهذه القيمة. 2. يجب تقسيم النوع الثاني إلى أربعة قطاعات ، يتم تحويل كل قطعة إلى ثنائي ، ومعرفة أي بتات تصبح 0 في البداية. **/ var masktemp = 96 ؛ if (fourmask.indexof (".") ==-1) {masktemp += parseint (fourmask) ؛ } آخر {var masks = fourmask.split (".") ؛ لـ (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 ؛ لـ (var j = 0 ؛ j <8 ؛ j ++) {if (mask4temp.charat (j) == '0') {flagtemp = true ؛ masktemp + = i*8 + j ؛ استراحة؛ } if (j == 7 && i == 3) {flagtemp = true ؛ Masktemp = 128 ؛ استراحة؛ }} if (flagtemp) {break ؛ }}} إرجاع Sixtemp + "/" + MaskTemp ؛} Found 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 غير صحيح!") ؛ يعود؛ } var sixtemp = "" ؛ var fouraDdrs = fouraddr.split (".") ؛ لـ (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 ؛ إرجاع Sixtemp ؛}بالطبع ، تتضمن الطريقة أعلاه حكمًا منتظمًا لعنوان IPv4 والقناع ، ويدعم نوعين من الأقنعة في شكل 255.255.255.0 و /32.