"use client" import type { IPInfo } from "@/app/api/server-ip/route" import { Loader } from "@/components/loading/Loader" import { Card, CardContent } from "@/components/ui/card" import { nezhaFetcher } from "@/lib/utils" import { useTranslations } from "next-intl" import useSWRImmutable from "swr/immutable" export default function ServerIPInfo({ server_id }: { server_id: number }) { const t = useTranslations("IPInfo") const { data } = useSWRImmutable(`/api/server-ip?server_id=${server_id}`, nezhaFetcher) if (!data) { return (
) } return ( <>
{data.asn?.autonomous_system_organization && (

{"ASN"}

{data.asn.autonomous_system_organization}
)} {data.asn?.autonomous_system_number && (

{t("asn_number")}

AS{data.asn.autonomous_system_number}
)} {data.city?.registered_country?.names.en && (

{t("registered_country")}

{data.city.registered_country?.names.en}
)} {data.city?.country?.iso_code && (

{"ISO"}

{data.city.country?.iso_code}
)} {data.city?.city?.names.en && (

{t("city")}

{data.city.city?.names.en}
)} {data.city?.location?.longitude && (

{t("longitude")}

{data.city.location?.longitude}
)} {data.city?.location?.latitude && (

{t("latitude")}

{data.city.location?.latitude}
)} {data.city?.location?.time_zone && (

{t("time_zone")}

{data.city.location?.time_zone}
)} {data.city?.postal && (

{t("postal_code")}

{data.city.postal?.code}
)}
) }