Files

52 lines
3.2 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="1067" height="600" viewBox="0 0 1067 600">
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#f6f4fb"/>
<stop offset="1" stop-color="#e9e4f5"/>
</linearGradient>
<linearGradient id="chip" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#7c5cff"/>
<stop offset="1" stop-color="#5b3fd4"/>
</linearGradient>
</defs>
<rect width="1067" height="600" fill="url(#bg)"/>
<text x="533" y="86" text-anchor="middle" font-family="sans-serif" font-size="40" font-weight="700" fill="#3b3550">IP 属地是怎么查出来的?</text>
<text x="533" y="128" text-anchor="middle" font-family="sans-serif" font-size="24" fill="#8a84a0">IP 段 → 二分查找 → 省|市|运营商</text>
<!-- IP 输入 -->
<rect x="96" y="190" width="240" height="76" rx="16" fill="url(#chip)"/>
<text x="216" y="218" text-anchor="middle" font-family="monospace" font-size="24" font-weight="700" fill="#ffffff">198.51.100.42</text>
<text x="216" y="248" text-anchor="middle" font-family="sans-serif" font-size="16" fill="#e6e0ff">IP 地址</text>
<!-- 箭头1 -->
<path d="M356 228 h64" stroke="#7c5cff" stroke-width="4" fill="none" marker-end="none"/>
<path d="M412 222 l12 6 l-12 6 z" fill="#7c5cff"/>
<!-- 二进制 -->
<rect x="428" y="196" width="252" height="64" rx="16" fill="#ffffff" stroke="#d8d2ec" stroke-width="3"/>
<text x="554" y="224" text-anchor="middle" font-family="monospace" font-size="20" font-weight="700" fill="#5b5568">0xC633642A</text>
<text x="554" y="248" text-anchor="middle" font-family="sans-serif" font-size="15" fill="#8a84a0">32 位整数(4 字节拼接)</text>
<!-- 箭头2 -->
<path d="M700 228 h64" stroke="#7c5cff" stroke-width="4" fill="none"/>
<path d="M756 222 l12 6 l-12 6 z" fill="#7c5cff"/>
<!-- 段表 -->
<g>
<rect x="776" y="176" width="220" height="104" rx="14" fill="#ffffff" stroke="#d8d2ec" stroke-width="3"/>
<text x="886" y="204" text-anchor="middle" font-family="monospace" font-size="16" fill="#8a84a0">100.0 ~ 100.255</text>
<rect x="790" y="216" width="192" height="26" rx="8" fill="#7c5cff" opacity="0.16"/>
<text x="886" y="234" text-anchor="middle" font-family="monospace" font-size="16" font-weight="700" fill="#5b3fd4">100.0 ~ 100.255 ✓</text>
<text x="886" y="262" text-anchor="middle" font-family="monospace" font-size="16" fill="#8a84a0">101.0 ~ 101.255</text>
<text x="886" y="280" text-anchor="middle" font-family="sans-serif" font-size="13" fill="#8a84a0">二分查找 O(log N)</text>
</g>
<!-- 结果 -->
<rect x="308" y="360" width="452" height="110" rx="18" fill="#ffffff" stroke="#7c5cff" stroke-width="4"/>
<text x="534" y="406" text-anchor="middle" font-family="sans-serif" font-size="26" font-weight="700" fill="#5b3fd4">中国|福建|福州|移动</text>
<text x="534" y="440" text-anchor="middle" font-family="sans-serif" font-size="16" fill="#8a84a0">段级归属地(不是精确定位)</text>
<!-- 底部提示 -->
<text x="533" y="540" text-anchor="middle" font-family="sans-serif" font-size="18" fill="#a49cc0">几十万条「IP 段 → 归属地」映射 · 本地毫秒级查询 · 注意 IPv6 盲点</text>
</svg>