{"id":3448,"date":"2026-10-28T06:23:17","date_gmt":"2026-10-28T13:23:17","guid":{"rendered":"https:\/\/cyber.mag212.com\/tools\/ipv6-calculator\/"},"modified":"2026-10-28T09:02:08","modified_gmt":"2026-10-28T16:02:08","slug":"ipv6-calculator","status":"publish","type":"page","link":"https:\/\/cyber.mag212.com\/fr\/tools\/ipv6-calculator\/","title":{"rendered":"Calculateur de sous-r\u00e9seau IPv6"},"content":{"rendered":"\n<div class=\"m212x\" id=\"m212-ipv6-calculator\">\n<style>\n.m212x{--bg:#0a0f15;--panel:#0f1720;--panel2:#121c27;--line:#1f2d3a;--line2:#2a3b4b;--ink:#e6edf3;--mute:#9fb0c0;--green:#3ee6a0;--red:#ff5468;--cyan:#3cc8f0;--amber:#f6b544;--violet:#a98bff;\n font-family:Inter,system-ui,-apple-system,\"Segoe UI\",sans-serif;color:var(--ink);line-height:1.6;font-size:16px}\n.m212x *{box-sizing:border-box}\n.m212x h2,.m212x h3,.m212x h4,.m212x p,.m212x ul,.m212x ol{margin:0}\n.m212x a{color:var(--cyan)}\n.m212x .hero{position:relative;background:radial-gradient(ellipse at 90% 0%,rgba(60,200,240,.14),transparent 60%),var(--bg);border:1px solid var(--line);border-radius:14px;padding:34px 30px;overflow:hidden;margin-bottom:22px}\n.m212x .hero::before{content:\"\";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--green),var(--cyan) 60%,var(--red))}\n.m212x .kick{font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px}\n.m212x .hero h2{font-size:clamp(26px,4.6vw,40px);line-height:1.1;font-weight:800;margin-bottom:10px}\n.m212x .hero h2 span{color:var(--green)}\n.m212x .hero p{color:var(--mute);font-size:17px;max-width:680px}\n.m212x .sec{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:22px;scroll-margin-top:110px}\n.m212x .sec h3{font-size:22px;font-weight:800;margin-bottom:8px}\n.m212x .sec h4{font-size:16px;font-weight:800;margin:16px 0 6px}\n.m212x .sec p{color:#cdd8e2;margin-bottom:10px}\n.m212x .lead{color:var(--mute) !important;margin-bottom:16px !important}\n.m212x .grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}\n.m212x .card{display:block;background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:18px;text-decoration:none;color:var(--ink)}\n.m212x a.card:hover{border-color:var(--green)}\n.m212x .card b{display:block;font-size:17px;margin-bottom:6px}\n.m212x .card p{color:var(--mute);font-size:14.5px;margin:0}\n.m212x .card .go{display:inline-block;margin-top:10px;font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--green)}\n.m212x .ic{font-size:26px;display:block;margin-bottom:8px}\n.m212x ul.l,.m212x ol.l{padding-left:22px;color:#cdd8e2;margin-bottom:10px}\n.m212x ul.l li,.m212x ol.l li{margin-bottom:6px}\n.m212x table{width:100%;border-collapse:collapse;font-size:14.5px;margin:6px 0 12px}\n.m212x th{text-align:left;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);border-bottom:1px solid var(--line2);padding:8px}\n.m212x td{border-bottom:1px solid var(--line);padding:8px;vertical-align:top;color:#d3dde6}\n.m212x code,.m212x .mono{font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",Consolas,monospace;font-size:.9em}\n.m212x code{background:rgba(60,200,240,.1);color:#bfe9ff;padding:1px 5px;border-radius:4px}\n.m212x pre{font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",Consolas,monospace;font-size:13.5px;background:#060a0f;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:6px;padding:12px 14px;overflow-x:auto;color:#cfe8d9;margin:6px 0 12px;white-space:pre}\n.m212x .callout{border:1px solid rgba(246,181,68,.4);background:rgba(246,181,68,.08);border-radius:10px;padding:14px 16px;margin:12px 0}\n.m212x .callout b{color:var(--amber)}\n.m212x .pill{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.06em;padding:2px 9px;border-radius:999px;border:1px solid}\n.m212x .p-n{color:#9fb0c0;border-color:#3a4b5b}\n.m212x .p-l{color:var(--green);border-color:rgba(62,230,160,.5);background:rgba(62,230,160,.08)}\n.m212x .p-m{color:var(--amber);border-color:rgba(246,181,68,.5);background:rgba(246,181,68,.08)}\n.m212x .p-h{color:#ff8a5c;border-color:rgba(255,138,92,.5);background:rgba(255,138,92,.08)}\n.m212x .p-c{color:var(--red);border-color:rgba(255,84,104,.5);background:rgba(255,84,104,.08)}\n.m212x .toc{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}\n.m212x .toc a{font-size:14px;font-weight:700;text-decoration:none;color:var(--ink);background:var(--panel2);border:1px solid var(--line2);border-radius:999px;padding:7px 13px}\n.m212x .toc a:hover{border-color:var(--green);color:var(--green)}\n.m212x input[type=text],.m212x input[type=search],.m212x input[type=url]{width:100%;background:#060a0f;color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:12px 14px;font-size:16px;font-family:inherit}\n.m212x input:focus{outline:2px solid var(--cyan);outline-offset:1px}\n.m212x button{font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;border-radius:8px;padding:11px 16px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink)}\n.m212x button.pri{background:var(--green);color:#04130c;border-color:var(--green)}\n.m212x .help{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:linear-gradient(90deg,rgba(60,200,240,.12),rgba(62,230,160,.05));border:1px solid rgba(60,200,240,.35);border-radius:14px;padding:20px 24px}\n.m212x .help div{flex:1;min-width:240px}\n.m212x .help a.cta{display:inline-block;background:var(--cyan);color:#03141b;font-weight:800;text-decoration:none;border-radius:8px;padding:12px 18px}\n.m212x .small{font-size:13.5px;color:var(--mute)}\n<\/style>\n<section class=\"hero\"><div class=\"kick\">MAG212 CYBER \u00b7 Tools<\/div><h2>IPv6 subnet <span>calculator.<\/span><\/h2><p>Expand or compress any IPv6 address, find its prefix range and address type, split a prefix into subnets and build EUI-64 interface IDs \u2014 with ready-to-paste Cisco commands.<\/p><div class=\"toc\"><a href=\"#m212v6-calc\">Prefix calculator<\/a><a href=\"#m212v6-split\">Subnet a prefix<\/a><a href=\"#m212v6-eui\">EUI-64 builder<\/a><a href=\"#m212v6-ref\">Quick reference<\/a><\/div><\/section>\n<style>.m212x .sn-row{display:flex;gap:8px;flex-wrap:wrap}\n.m212x .sn-ex{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 2px}.m212x .sn-ex button{padding:5px 10px;font-size:13px;font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",monospace}\n.m212x .sn-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px;margin:14px 0}\n.m212x .sn-kv div{background:#060a0f;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;min-width:0}\n.m212x .sn-kv span{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}\n.m212x .sn-kv b{font-family:\"JetBrains Mono\",\"DejaVu Sans Mono\",monospace;font-size:15px;color:#e6edf3;word-break:break-all}\n.m212x .sn-tag{display:inline-block;margin:0 6px 6px 0}\n.m212x .sn-err{color:var(--red);display:none;margin-top:8px}\n.m212x .sn-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}.m212x .sn-tw table{min-width:560px}\n.m212x .sn-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}<\/style>\n<section class=\"sec\" id=\"m212v6-calc\"><h3>Prefix calculator<\/h3><p class=\"lead\">Enter an address with its prefix length, for example <code>2001:db8:acad:20::1\/64<\/code>. Compressed, expanded and IPv4-embedded forms all work.<\/p>\n<div class=\"sn-row\"><input type=\"text\" id=\"m212v6in\" value=\"2001:db8:acad:20::1\/64\" aria-label=\"IPv6 address with prefix length\" spellcheck=\"false\" autocomplete=\"off\" style=\"flex:1;min-width:220px\"><button type=\"button\" class=\"pri\" id=\"m212v6go\">Calculate<\/button><\/div>\n<div class=\"sn-ex\"><span class=\"small\" style=\"align-self:center\">Try:<\/span><button type=\"button\" data-ex=\"2001:0db8:0000:0000:0000:ff00:0042:8329\/48\">2001:0db8:\u2026:8329\/48<\/button><button type=\"button\" data-ex=\"fe80::21a:2bff:fe3c:4d5e\/64\">fe80::\u2026\/64<\/button><button type=\"button\" data-ex=\"fd12:3456:789a:1::10\/64\">fd12:3456:789a:1::10\/64<\/button><button type=\"button\" data-ex=\"::ffff:192.0.2.33\/128\">::ffff:192.0.2.33<\/button><button type=\"button\" data-ex=\"ff02::1:ff3c:4d5e\/128\">ff02::1:ff3c:4d5e<\/button><\/div>\n<p class=\"small sn-err\" id=\"m212v6err\">That isn&#8217;t a valid IPv6 address. Use hex groups separated by colons, at most one &#8220;::&#8221;, and a prefix from \/0 to \/128.<\/p>\n<div id=\"m212v6out\" style=\"display:none\"><div id=\"m212v6tags\" style=\"margin-top:14px\"><\/div><div class=\"sn-kv\" id=\"m212v6kv\"><\/div>\n<div class=\"sn-head\"><h4>Cisco IOS \/ IOS XE snippets<\/h4><button type=\"button\" id=\"m212v6cp\" style=\"padding:6px 12px;font-size:13px\">Copy commands<\/button><\/div><pre id=\"m212v6cfg\"><\/pre><\/div><\/section>\n<section class=\"sec\" id=\"m212v6-split\"><h3>Subnet a prefix<\/h3><p class=\"lead\">Split the prefix above into smaller subnets. A common plan: a <b>\/48<\/b> per site gives 65,536 <b>\/64<\/b> networks; use <b>\/64<\/b> for every LAN or VLAN so SLAAC works.<\/p>\n<div class=\"sn-row\"><label class=\"small\" style=\"align-self:center\">New prefix length \/<\/label><input type=\"text\" id=\"m212v6new\" value=\"64\" aria-label=\"New prefix length\" style=\"width:90px\"><button type=\"button\" class=\"pri\" id=\"m212v6sp\">List subnets<\/button><\/div>\n<p class=\"small sn-err\" id=\"m212v6serr\"><\/p><div id=\"m212v6sout\" style=\"margin-top:12px\"><\/div><\/section>\n<section class=\"sec\" id=\"m212v6-eui\"><h3>EUI-64 interface ID builder<\/h3><p class=\"lead\">See how a router or host turns a 48-bit MAC address into a 64-bit interface ID: split the MAC, insert <code>FFFE<\/code> in the middle and flip the 7th bit (universal\/local) of the first byte.<\/p>\n<div class=\"sn-row\"><input type=\"text\" id=\"m212v6mac\" value=\"00:1A:2B:3C:4D:5E\" aria-label=\"MAC address\" spellcheck=\"false\" style=\"flex:1;min-width:200px\"><button type=\"button\" class=\"pri\" id=\"m212v6eg\">Build<\/button><\/div>\n<p class=\"small sn-err\" id=\"m212v6merr\">Enter a MAC address such as 00:1A:2B:3C:4D:5E, 00-1a-2b-3c-4d-5e or 001a.2b3c.4d5e.<\/p>\n<div class=\"sn-kv\" id=\"m212v6ekv\"><\/div>\n<p class=\"small\">Privacy note: EUI-64 addresses expose the device&#8217;s MAC address. Most operating systems now use random or stable-privacy interface IDs (RFC 7217, RFC 8981) for hosts; EUI-64 remains common on router interfaces.<\/p><\/section>\n<section class=\"sec\" id=\"m212v6-ref\"><h3>Quick reference<\/h3><div class=\"sn-tw\"><table><tr><th>Prefix<\/th><th>Meaning<\/th><th>Typical use<\/th><\/tr>\n<tr><td class=\"mono\">2000::\/3<\/td><td>Global unicast<\/td><td>Internet-routable addresses from your ISP or RIR<\/td><\/tr>\n<tr><td class=\"mono\">fc00::\/7<\/td><td>Unique local (RFC 4193); in practice <code>fd00::\/8<\/code><\/td><td>Internal-only addressing, like RFC 1918 in IPv4<\/td><\/tr>\n<tr><td class=\"mono\">fe80::\/10<\/td><td>Link-local<\/td><td>Every IPv6 interface; neighbor discovery and routing-protocol next hops<\/td><\/tr>\n<tr><td class=\"mono\">ff00::\/8<\/td><td>Multicast<\/td><td><code>ff02::1<\/code> all nodes \u00b7 <code>ff02::2<\/code> all routers \u00b7 <code>ff02::5\/6<\/code> OSPFv3 \u00b7 <code>ff02::a<\/code> EIGRP<\/td><\/tr>\n<tr><td class=\"mono\">ff02::1:ff00:0\/104<\/td><td>Solicited-node multicast<\/td><td>Neighbor discovery (replaces ARP)<\/td><\/tr>\n<tr><td class=\"mono\">2001:db8::\/32, 3fff::\/20<\/td><td>Documentation (RFC 3849, RFC 9637)<\/td><td>Examples and training \u2014 never routed<\/td><\/tr>\n<tr><td class=\"mono\">::1\/128 \u00b7 ::\/128<\/td><td>Loopback \u00b7 unspecified<\/td><td>Local host \u00b7 &#8220;no address yet&#8221;<\/td><\/tr>\n<tr><td class=\"mono\">::ffff:0:0\/96<\/td><td>IPv4-mapped<\/td><td>Dual-stack sockets showing IPv4 peers<\/td><\/tr>\n<tr><td class=\"mono\">64:ff9b::\/96<\/td><td>NAT64 well-known prefix (RFC 6052)<\/td><td>IPv6-only clients reaching IPv4 services<\/td><\/tr>\n<tr><td class=\"mono\">\/48 \u00b7 \/56 \u00b7 \/64 \u00b7 \/127 \u00b7 \/128<\/td><td>Common lengths<\/td><td>Site \u00b7 small site or home \u00b7 one LAN \u00b7 point-to-point link (RFC 6164) \u00b7 loopback\/host<\/td><\/tr><\/table><\/div>\n<div class=\"callout\"><b>No broadcast in IPv6.<\/b> Every address in a prefix is assignable (the all-zeros interface ID is the subnet-router anycast address, so avoid giving it to hosts). Multicast replaces broadcast, and neighbor discovery replaces ARP.<\/div>\n<p class=\"small\">\ud83d\udd12 Every calculation runs in your browser. Nothing you type is sent or stored. For IPv4, use the <a href=\"\/tools\/subnet-calculator\/\">IP subnet &amp; VLSM calculator<\/a>.<\/p><\/section>\n<p class=\"small noprint\" style=\"margin:-8px 0 18px;padding:0 4px\">\u2696\ufe0f For education and use on systems you own or are authorised to test. Results are automated guidance, not a professional audit. See our <a href=\"\/terms-of-use\/\">terms of use<\/a> and <a href=\"\/privacy-policy\/\">privacy policy<\/a>.<\/p>\n<div class=\"help\"><div><div class=\"kick\" style=\"margin-bottom:4px\">Need expert help?<\/div>\n<p style=\"font-size:17px;margin:0\"><b>MAG212 CYBER<\/b> offers network and cybersecurity consultation, plus security seminars for organisations around the world.<\/p><\/div>\n<a class=\"cta\" href=\"\/services\/\">Explore our services \u2192<\/a><\/div>\n<script>\n(function(){\nvar root=document.getElementById('m212-ipv6-calculator'); if(!root) return;\nvar TWO=BigInt(2), ONE=BigInt(1), ZERO=BigInt(0), G=BigInt(65536);\nfunction P2(n){ return TWO**BigInt(n); }\nfunction parse6(s){\n  s=String(s).trim().toLowerCase(); if(!s) return null;\n  if(s.indexOf('[')===0) s=s.replace(\/^\\[|\\]$\/g,''); s=s.replace(\/%[0-9a-z._\\-]+$\/,'');\n  var v4=s.match(\/^(.*:)(\\d{1,3}(\\.\\d{1,3}){3})$\/), tail=[];\n  if(v4){ var o=v4[2].split('.').map(Number); for(var q=0;q<4;q++){ if(o[q]>255) return null; } tail=[o[0]*256+o[1],o[2]*256+o[3]]; s=v4[1]; if(\/[^:]:$\/.test(s)) s=s.slice(0,-1); }\n  var parts=s.split('::'); if(parts.length>2) return null;\n  function grp(x){ if(x==='') return []; var g=x.split(':'), r=[]; for(var i=0;i<g.length;i++){ if(!\/^[0-9a-f]{1,4}$\/.test(g[i])) return null; r.push(parseInt(g[i],16)); } return r; }\n  var a=grp(parts[0]); if(a===null) return null; var all;\n  if(parts.length===2){ var b=grp(parts[1]); if(b===null) return null; b=b.concat(tail); var fill=8-a.length-b.length; if(fill<1) return null; all=a; for(var f=0;f<fill;f++) all.push(0); all=all.concat(b); }\n  else { all=a.concat(tail); if(all.length!==8) return null; }\n  var n=ZERO; for(var k=0;k<8;k++) n=n*G+BigInt(all[k]); return n;\n}\nfunction groups(n){ var g=[]; for(var i=0;i<8;i++){ g.unshift(Number(n%G)); n=n\/G; } return g; }\nfunction expand(n){ return groups(n).map(function(x){ return ('000'+x.toString(16)).slice(-4); }).join(':'); }\nfunction compress(n){\n  var g=groups(n), bs=-1, bl=0, cs=-1, cl=0;\n  if(g[0]===0) if(g[1]===0) if(g[2]===0) if(g[3]===0) if(g[4]===0) if(g[5]===65535) return '::ffff:'+Math.floor(g[6]\/256)+'.'+(g[6]%256)+'.'+Math.floor(g[7]\/256)+'.'+(g[7]%256);\n  for(var i=0;i<8;i++){ if(g[i]===0){ if(cs<0){ cs=i; cl=1; } else cl++; if(cl>bl){ bl=cl; bs=cs; } } else { cs=-1; cl=0; } }\n  var h=g.map(function(x){ return x.toString(16); });\n  if(bl<2) return h.join(':');\n  var left=h.slice(0,bs).join(':'), right=h.slice(bs+bl).join(':');\n  return left+'::'+right;\n}\nvar TYPES=[['::',128,'Unspecified address','p-n'],['::1',128,'Loopback','p-n'],['::ffff:0:0',96,'IPv4-mapped address','p-m'],['64:ff9b::',96,'NAT64 well-known prefix (RFC 6052)','p-m'],['100::',64,'Discard-only (RFC 6666)','p-n'],['2001:db8::',32,'Documentation (RFC 3849) \u2014 not routable','p-n'],['3fff::',20,'Documentation (RFC 9637) \u2014 not routable','p-n'],['2001::',32,'Teredo tunnelling','p-m'],['2002::',16,'6to4 (deprecated)','p-m'],['ff02::1:ff00:0',104,'Solicited-node multicast','p-h'],['ff00::',8,'Multicast','p-h'],['fe80::',10,'Link-local','p-m'],['fc00::',7,'Unique local address (ULA, RFC 4193)','p-l'],['2000::',3,'Global unicast','p-h']];\nfunction kind(a){ for(var i=0;i<TYPES.length;i++){ var sz=P2(128-TYPES[i][1]); if(a\/sz===parse6(TYPES[i][0])\/sz) return TYPES[i]; } return [null,0,'Reserved \/ unassigned','p-n']; }\nfunction fmtBig(n){ try{ return n.toLocaleString('en-US'); }catch(e){ return n.toString(); } }\nfunction count(p){ var e=128-p; var n=P2(e); return e>40 ? '2^'+e+' ('+fmtBig(n)+')' : fmtBig(n); }\nfunction input(s){ s=String(s).trim(); var m=s.match(\/^(.+?)\\s*\\\/\\s*(\\d{1,3})$\/), assumed=false, p; if(m){ p=+m[2]; s=m[1]; } else { p=64; assumed=true; } if(p>128) return null; var a=parse6(s); if(a===null) return null; return {a:a,p:p,assumed:assumed}; }\nvar cur=null;\nfunction esc(t){ var d=document.createElement('div'); d.textContent=t; return d.innerHTML; }\nfunction run(){\n  var q=input(document.getElementById('m212v6in').value), out=document.getElementById('m212v6out'), err=document.getElementById('m212v6err');\n  if(!q){ err.style.display='block'; out.style.display='none'; cur=null; return; }\n  err.style.display='none'; out.style.display='block';\n  var size=P2(128-q.p), net=q.a\/size*size, last=net+size-ONE, k=kind(q.a); cur={net:net,p:q.p};\n  var tags='<span class=\"pill '+k[3]+' sn-tag\">'+esc(k[2])+'<\/span>';\n  if(q.assumed) tags+='<span class=\"pill p-m sn-tag\">No prefix given \u2014 assumed \/64<\/span>';\n  if(q.p===64) tags+='<span class=\"pill p-l sn-tag\">Standard LAN size (\/64, SLAAC-ready)<\/span>';\n  if(q.p===127) tags+='<span class=\"pill p-l sn-tag\">Point-to-point link (RFC 6164)<\/span>';\n  if(q.p>64) if(q.p<127) tags+='<span class=\"pill p-m sn-tag\">Longer than \/64 \u2014 SLAAC will not work<\/span>';\n  document.getElementById('m212v6tags').innerHTML=tags;\n  var kv=[['Compressed (RFC 5952)',compress(q.a)],['Expanded',expand(q.a)],['Prefix',compress(net)+'\/'+q.p],['First address',compress(net)],['Last address',compress(last)],['Addresses in prefix',count(q.p)]];\n  if(q.p<=64) kv.push(['\/64 networks inside',fmtBig(P2(64-q.p))]);\n  kv.push(['Interface ID (last 64 bits)',expand(q.a).split(':').slice(4).join(':')]);\n  if(q.p%4===0){ var nib=expand(net).replace(\/:\/g,'').slice(0,q.p\/4).split('').reverse().join('.'); kv.push(['Reverse DNS zone',(nib?nib+'.':'')+'ip6.arpa']); }\n  document.getElementById('m212v6kv').innerHTML=kv.map(function(x){ return '<div><span>'+x[0]+'<\/span><b>'+esc(x[1])+'<\/b><\/div>'; }).join('');\n  var host=(q.a===net) ? (q.p<128 ? net+ONE : net) : q.a;\n  var cfg='ipv6 unicast-routing\\n!\\ninterface GigabitEthernet0\/0\\n ipv6 address '+compress(host)+'\/'+q.p+'\\n';\n  if(q.p===64) cfg+=' ! or let the router build its own interface ID:\\n ! ipv6 address '+compress(net)+'\/64 eui-64\\n';\n  cfg+=' no shutdown\\n!\\n! Static route to this prefix (replace the next hop)\\nipv6 route '+compress(net)+'\/'+q.p+' 2001:db8:ffff::1\\n!\\n! IPv6 ACL matching this prefix\\nipv6 access-list NET-V6\\n permit ipv6 '+compress(net)+'\/'+q.p+' any';\n  document.getElementById('m212v6cfg').textContent=cfg;\n  split();\n}\nfunction split(){\n  var e=document.getElementById('m212v6serr'), o=document.getElementById('m212v6sout'); o.innerHTML=''; e.style.display='none';\n  if(!cur) return; var np=parseInt(document.getElementById('m212v6new').value,10);\n  if(isNaN(np) ? true : (np<=cur.p ? true : np>128)){ e.textContent='Choose a prefix length longer than \/'+cur.p+' and no more than \/128.'; e.style.display='block'; return; }\n  var bits=np-cur.p, total=P2(bits), step=P2(128-np), show=total>BigInt(16) ? 8 : Number(total), h='<p class=\"small\" style=\"margin-bottom:8px\"><b>'+fmtBig(total)+'<\/b> subnets of \/'+np+(bits>40?' (2^'+bits+')':'')+', each with '+count(np)+' addresses.<\/p><div class=\"sn-tw\"><table><tr><th>#<\/th><th>Subnet<\/th><th>Range<\/th><\/tr>';\n  for(var i=0;i<show;i++){ var s=cur.net+BigInt(i)*step; h+='<tr><td>'+(i+1)+'<\/td><td class=\"mono\">'+compress(s)+'\/'+np+'<\/td><td class=\"mono\">'+compress(s)+' \u2013 '+compress(s+step-ONE)+'<\/td><\/tr>'; }\n  if(total>BigInt(show)){ var ls=cur.net+(total-ONE)*step; h+='<tr><td>\u2026<\/td><td colspan=\"2\" class=\"small\">'+fmtBig(total-BigInt(show)-ONE)+' more<\/td><\/tr><tr><td>'+fmtBig(total)+'<\/td><td class=\"mono\">'+compress(ls)+'\/'+np+'<\/td><td class=\"mono\">'+compress(ls)+' \u2013 '+compress(ls+step-ONE)+'<\/td><\/tr>'; }\n  o.innerHTML=h+'<\/table><\/div>';\n}\nfunction eui(){\n  var raw=document.getElementById('m212v6mac').value.trim().toLowerCase().replace(\/[^0-9a-f]\/g,''), err=document.getElementById('m212v6merr'), kv=document.getElementById('m212v6ekv');\n  if(raw.length!==12){ err.style.display='block'; kv.innerHTML=''; return; } err.style.display='none';\n  var b=[]; for(var i=0;i<6;i++) b.push(parseInt(raw.substr(i*2,2),16));\n  var f=b[0], flipped=(Math.floor(f\/2)%2===1) ? f-2 : f+2;\n  var by=[flipped,b[1],b[2],255,254,b[3],b[4],b[5]], hx=by.map(function(x){ return ('0'+x.toString(16)).slice(-2); });\n  var iid=hx[0]+hx[1]+':'+hx[2]+hx[3]+':'+hx[4]+hx[5]+':'+hx[6]+hx[7], iidN=ZERO;\n  for(var j=0;j<8;j++) iidN=iidN*BigInt(256)+BigInt(by[j]);\n  var rows=[['Step 1 \u00b7 MAC',raw.match(\/..\/g).join(':')],['Step 2 \u00b7 insert FFFE',raw.slice(0,6).match(\/..\/g).join(':')+':ff:fe:'+raw.slice(6).match(\/..\/g).join(':')],['Step 3 \u00b7 flip bit 7 of first byte','0x'+('0'+f.toString(16)).slice(-2)+' \u2192 0x'+hx[0]],['Interface ID',iid],['Link-local address',compress(parse6('fe80::')+iidN)]];\n  if(cur) if(cur.p<=64) rows.push(['Address in '+compress(cur.net)+'\/64',compress(cur.net\/P2(64)*P2(64)+iidN)]);\n  kv.innerHTML=rows.map(function(x){ return '<div><span>'+x[0]+'<\/span><b>'+esc(x[1])+'<\/b><\/div>'; }).join('');\n}\ndocument.getElementById('m212v6go').addEventListener('click',function(){ run(); eui(); });\ndocument.getElementById('m212v6in').addEventListener('keydown',function(e){ if(e.key==='Enter'){ run(); eui(); } });\ndocument.getElementById('m212v6sp').addEventListener('click',split);\ndocument.getElementById('m212v6eg').addEventListener('click',eui);\nArray.prototype.forEach.call(root.querySelectorAll('[data-ex]'),function(b){ b.addEventListener('click',function(){ document.getElementById('m212v6in').value=b.getAttribute('data-ex'); run(); eui(); }); });\ndocument.getElementById('m212v6cp').addEventListener('click',function(){ var b=this; try{ navigator.clipboard.writeText(document.getElementById('m212v6cfg').textContent).then(function(){ b.textContent='Copied \u2713'; setTimeout(function(){ b.textContent='Copy commands'; },1500); }); }catch(e){} });\nwindow.m212v6={parse6:parse6,compress:compress,expand:expand,kind:kind};\nrun(); eui();\n})();\n<\/script>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>MAG212 CYBER \u00b7 Tools IPv6 subnet calculator. Expand or compress any IPv6 address, find its prefix range and address type, split a prefix into subnets and build EUI-64 interface IDs \u2014 with ready-to-paste Cisco commands. Prefix calculatorSubnet a prefixEUI-64 builderQuick reference Prefix calculator Enter an address with its prefix length, for example 2001:db8:acad:20::1\/64. Compressed, expanded [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3386,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3448","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/comments?post=3448"}],"version-history":[{"count":1,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3448\/revisions"}],"predecessor-version":[{"id":3467,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3448\/revisions\/3467"}],"up":[{"embeddable":true,"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/pages\/3386"}],"wp:attachment":[{"href":"https:\/\/cyber.mag212.com\/fr\/wp-json\/wp\/v2\/media?parent=3448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}