"use client" import { useEffect, useState } from "react" import IpDisplay from "@/components/ip-display" interface IpInfo { ip: string ipv6Info?: { isIPv6Mapped: boolean originalFormat: string ipv6Format: string hasIPv6Support: boolean } debug?: { originalDetectedIp?: string finalDetectedIp?: string rawDetectedIp?: string allFoundIps?: string[] ipDetectionMethod?: string } } export default function TestIPv6Page() { const [ipInfo, setIpInfo] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { const fetchIpInfo = async () => { try { const response = await fetch('/api/ip') if (response.ok) { const data = await response.json() setIpInfo(data) } } catch (error) { console.error("Error fetching IP info:", error) } finally { setLoading(false) } } fetchIpInfo() }, []) return (

IPv6格式IPv4地址測試頁面

IP顯示組件測試

桌面版顯示:

手機版顯示:

{loading ? (

載入中...

) : ipInfo ? (

原始API數據

基本信息:

IPv4地址: {ipInfo.ip}

{ipInfo.ipv6Info && ( <>

是否為IPv6映射: {ipInfo.ipv6Info.isIPv6Mapped ? '是' : '否'}

原始格式: {ipInfo.ipv6Info.originalFormat}

IPv6格式: {ipInfo.ipv6Info.ipv6Format}

IPv6支援: {ipInfo.ipv6Info.hasIPv6Support ? '已啟用' : '未啟用'}

)}
{ipInfo.debug && (

調試信息:

檢測方法: {ipInfo.debug.ipDetectionMethod || '未知'}

原始檢測IP: {ipInfo.debug.originalDetectedIp || '無'}

最終檢測IP: {ipInfo.debug.finalDetectedIp || '無'}

原始檢測IP: {ipInfo.debug.rawDetectedIp || '無'}

{ipInfo.debug.allFoundIps && ipInfo.debug.allFoundIps.length > 0 && (

所有檢測到的IP:

    {ipInfo.debug.allFoundIps.map((ip, index) => (
  • {ip}
  • ))}
)}
)}
) : (

無法獲取IP信息

)}
) }