ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Record data

{
  "uri": "at://did:web:nat.vg/li.plonk.paste/3ljivjg3olc2j",
  "cid": "bafyreifbhcsef36udagi7fqr4t6kdfex7b2xdbx47v77vxr6nkwiafo2ca",
  "value": {
    "code": "/**\r\n * Extracts /48, /56, and /64 prefixes from an IPv6 address\r\n * @param {string} ipv6 - The IPv6 address in standard or compressed format\r\n * @returns {Object} Object containing the /48, /56, and /64 prefixes\r\n */\r\nfunction extractIPv6Prefixes(ipv6) {\r\n  // Expand the compressed IPv6 address\r\n  let expandedIPv6 = expandIPv6(ipv6);\r\n  \r\n  // Split the address into groups\r\n  const groups = expandedIPv6.split(':');\r\n  \r\n  // Extract prefixes\r\n  const prefix48 = groups.slice(0, 3).join(':');\r\n  const prefix56 = groups.slice(0, 3).join(':') + ':' + groups[3].substring(0, 1);\r\n  const prefix64 = groups.slice(0, 4).join(':');\r\n  \r\n  return {\r\n    prefix48: prefix48,\r\n    prefix56: prefix56,\r\n    prefix64: prefix64,\r\n    expanded: expandedIPv6\r\n  };\r\n}\r\n\r\n/**\r\n * Expands a compressed IPv6 address to its full form\r\n * @param {string} ipv6 - The IPv6 address, possibly in compressed format\r\n * @returns {string} The expanded IPv6 address\r\n */\r\nfunction expandIPv6(ipv6) {\r\n  // Handle double colon expansion\r\n  if (ipv6.includes('::')) {\r\n    const parts = ipv6.split('::');\r\n    const left = parts[0] ? parts[0].split(':') : [];\r\n    const right = parts[1] ? parts[1].split(':') : [];\r\n    const missing = 8 - left.length - right.length;\r\n    \r\n    // Create the expanded middle section\r\n    const middle = Array(missing).fill('0000');\r\n    \r\n    // Join all parts together\r\n    const full = [...left, ...middle, ...right];\r\n    \r\n    // Ensure each part is properly padded\r\n    return full.map(part => part.padStart(4, '0')).join(':');\r\n  }\r\n  \r\n  // If no compression, just ensure each part is padded\r\n  return ipv6.split(':').map(part => part.padStart(4, '0')).join(':');\r\n}",
    "lang": "javascript",
    "$type": "li.plonk.paste",
    "title": "v4",
    "shortUrl": "Uf",
    "createdAt": "2025-03-03T21:30:50.089Z"
  }
}