PageSourceSearch

https://anycast.ink/_nuxt/D0VE09VW.js

js anycast.ink collected 2026-10-08 05:22:00 UTC 20,385 bytes, 28 lines download raw bytes

1import{d as mt,r as v,k as gt,x as H,o as Q,l as U,c as r,f as e,e as J,i as c,m as T,v as X,u as n,p as bt,q as j,y as tt,t as i,w as yt,T as xt,n as D,F as E,a as d,_ as ht,g as A,h as _t,j as wt}from"./BkU8sLL4.js";import{l as et,g as st,a as kt,s as It,b as Lt}from"./OhNoTl68.js";import"./BTmWE9Wq.js";const Pt={class:"container mx-auto p-4"},$t={class:"card backdrop-blur-md bg-opacity-50 bg-base-200 shadow-xl"},Et={class:"card-body"},At={class:"w-full max-w-4xl mx-auto"},Ct={class:"flex flex-col gap-4"},Kt={class:"flex flex-col md:flex-row gap-4 items-end"},Mt={class:"form-control flex-1"},Rt={class:"join w-full"},Nt=["disabled"],St={class:"flex flex-col md:flex-row gap-4"},Tt={class:"form-control w-full md:w-1/3"},jt={class:"form-control w-full md:w-1/3"},Dt={class:"form-control w-full md:w-1/3"},Vt={class:"input input-bordered w-full bg-opacity-70 bg-base-100 flex items-center justify-between"},Gt={key:0,class:"truncate"},Yt={key:1,class:"opacity-50"},Ft={class:"mt-8"},Ut={key:0,class:"text-center p-8"},zt={key:1,class:"text-center p-8"},Bt={class:"mt-4 text-base-content/70"},Wt={key:2,class:"card bg-opacity-70 bg-base-100 backdrop-blur shadow-lg"},Zt={class:"card-body"},qt={class:"flex flex-col md:flex-row justify-between mb-4"},Ot={class:"flex md:flex-col mt-4 md:mt-0 gap-2 md:items-end"},Ht=["href"],Qt={key:0,class:"mt-4"},Jt={class:"stats shadow mb-4 bg-opacity-50 bg-base-200"},Xt={class:"stat"},te={class:"stat-value"},ee={class:"stat"},se={class:"stat-value"},le={class:"stat"},ae={class:"stat-value"},oe={class:"stat"},ne={class:"stat-value"},ie={class:"mb-6 relative"},re={key:0,class:"flex h-full items-center justify-center"},ce={class:"ml-2"},de={key:0,class:"text-error text-center mt-2"},ue={class:"overflow-x-auto"},pe={class:"table table-sm w-full"},ve={key:0,class:"loading loading-dots loading-xs"},fe={key:0},me={key:0,class:"loading loading-dots loading-xs"},ge={key:1,class:"text-xs whitespace-nowrap"},be={class:"flex flex-col"},ye={class:"text-xs opacity-70"},xe=["onClick"],he={key:1,class:"alert"},_e={key:3,class:"alert alert-error"},we={class:"modal-box"},ke={class:"form-control w-full"},lt="https://ping.akaere.online",Ie=mt({__name:"ping",setup(Le){const P=v(""),C=v("200"),K=v("0"),w=v(!1),g=v(""),b=v(""),f=v(null),u=v([]),$=v(""),M=v(null),V=v(!1),R=v(!1),N=v(!1),k=v(""),h=v(""),z=gt(()=>P.value.trim()),at=s=>{if(!s)return"";let t;if(/^\d+$/.test(s)){const a=parseInt(s)*1e3;t=new Date(a)}else t=new Date(s);return isNaN(t.getTime())?"未知日期":t.toLocaleString("zh-CN")},B=async()=>{if(z.value){w.value=!0,g.value="",b.value="",f.value=null,u.value=[];try{const s=await fetch(`${lt}/api/ping?target=${encodeURIComponent(P.value)}&probes=${C.value}&ipv=${K.value}`);if(!s.ok)throw new Error(`请求失败,状态码: ${s.status}`);const t=await s.json();t.error?g.value=t.error:t.status==="success"&&t.measurement_id?(b.value=t.measurement_id,ct()):g.value="未知错误,请稍后重试"}catch(s){console.error("PING error:",s),g.value=s instanceof Error?s.message:"请求失败"}finally{w.value=!1}}},S=async()=>{if(b.value)try{const s=await fetch(`${lt}/measurements/${b.value}`);if(!s.ok)throw new Error(`获取结果失败,状态码: ${s.status}`);const t=await s.json();t.error?g.value=t.error:(f.value=t,W(),(t.status==="Stopped"||t.status==="Completed")&&Y())}catch(s){console.error("Fetch results error:",s),g.value=s instanceof Error?s.message:"获取结果失败"}finally{w.value=!1}},W=()=>{!f.value||!f.value.results||(u.value=f.value.results.map(s=>{const t=s.sent||0,a=s.rcvd||0;let l=0;t>0&&(l=Math.round((t-a)/t*100));const I=s.min!==void 0&&s.min>=0?Math.round(s.min*1e3)/1e3:0,o=s.avg!==void 0&&s.avg>=0?Math.round(s.avg*1e3)/1e3:0,L=s.max!==void 0&&s.max>=0?Math.round(s.max*1e3)/1e3:0;return{probe_id:s.prb_id||"未知",country:s.country_code||"未知",city:s.city||"",asn:s.as||s.asn_v4||s.asn_v6||"未知",min_rtt:I,avg_rtt:o,max_rtt:L,packet_loss:l,ip:s.from||"",loading_geo:!0,_raw:s}}),u.value.sort((s,t)=>s.avg_rtt===0&&t.avg_rtt===0?0:s.avg_rtt===0?1:t.avg_rtt===0?-1:s.avg_rtt-t.avg_rtt),console.log("处理后的结果数据:",u.value),G())},G=async()=>
1{if(console.log("开始获取地理位置信息"),x.value=!0,!R.value&&(R.value=await et(),!R.value)){console.error("GeoIP数据库加载失败,无法获取地理位置信息"),x.value=!1;return}for(const s of u.value){if(!s.ip){s.loading_geo=!1;continue}try{const t=await kt(s.ip);if(t){if(s.country=t.country||s.country,s.country_name=t.country_name,s.city=t.city||s.city,s.asn=t.asn||t.org||s.asn,s.geo=t,t.latitude&&t.longitude)s.latitude=t.latitude,s.longitude=t.longitude;else if(t.loc){const[a,l]=t.loc.split(",").map(Number);s.latitude=a,s.longitude=l}console.log(`获取IP ${s.ip} 的地理位置成功:`,t)}}catch(t){console.error(`获取IP ${s.ip} 的地理位置失败:`,t)}finally{s.loading_geo=!1}}console.log("完成地理位置信息获取"),x.value=!1},ot=()=>{if(!u.value.length)return 0;const s=u.value.reduce((t,a)=>t+a.avg_rtt,0);return Math.round(s/u.value.length)},nt=()=>u.value.length?Math.min(...u.value.map(s=>s.min_rtt)):0,it=()=>u.value.length?Math.max(...u.value.map(s=>s.max_rtt)):0,rt=()=>{if(!u.value.length)return 0;const s=u.value.reduce((t,a)=>t+a.packet_loss,0);return Math.round(s/u.value.length)},ct=()=>{Y(),S(),M.value=It(()=>{S()},5e3)},Y=()=>{M.value&&(clearInterval(M.value),M.value=null)};H(()=>{Y()}),Q(async()=>{R.value=await et(),Z();const s=window.location.search;if(s&&s.startsWith("?")&&!s.includes("=")){const t=s.substring(1).trim();t&&/^\d+$/.test(t)&&(b.value=t,w.value=!0,console.log("从URL参数加载测量结果:",t),S().catch(a=>{console.error("加载测量结果出错:",a),w.value=!1,g.value="加载测量结果失败"}))}});const dt=()=>{if(!b.value)return;const s=`${window.location.origin}${window.location.pathname}?${b.value}`;navigator.clipboard.writeText(s).then(()=>{V.value=!0,setTimeout(()=>{V.value=!1},2e3)}).catch(t=>{console.error("复制链接失败:",t)})},ut=()=>{k.value=st()||"",N.value=!0},F=()=>{N.value=!1},pt=()=>{k.value.trim()?(Lt(k.value.trim()),Z()):(localStorage.removeItem("ipipinfo_api_key"),h.value=""),F()},Z=()=>{const s=st();s&&s!=="29a9fd77d1bd76"?s.length>8?h.value=`${s.substring(0,4)}****${s.substring(s.length-4)}`:h.value="****"+s.substring(s.length-2):h.value=""},_=v(!1),x=v(!1),y=v("");let p=null,m=[];const q=()=>new Promise((s,t)=>{try{if(window.L){console.log("Leaflet已加载,直接使用"),s();return}console.log("开始动态加载Leaflet库");const a=document.createElement("link");a.rel="stylesheet",a.href="https://cdn.jsdelivr.net/npm/[email protected]/dist/leaflet.css",document.head.appendChild(a);const l=document.createElement("script");l.src="https://cdn.jsdelivr.net/npm/[email protected]/dist/leaflet.js",l.onload=()=>{console.log("Leaflet库加载成功"),setTimeout(()=>s(),100)},l.onerror=I=>{console.error("Leaflet加载失败",I),t(new Error("Failed to load Leaflet: Network error"))},document.head.appendChild(l)}catch(a){console.error("加载Leaflet时发生异常:",a),t(a)}}),vt=async()=>{if(!u.value.length){console.error("没有处理结果,无法初始化地图");return}const s=document.getElementById("ripe-map");if(!s){console.error("找不到地图容器元素"),y.value="地图容器不存在";return}_.value=!0,y.value="";try{window.L||(console.log("开始加载Leaflet库"),await q(),console.log("Leaflet库加载完成")),p&&(console.log("清理现有地图实例"),m.forEach(o=>{o&&p.removeLayer(o)}),m=[],p.remove(),p=null),s.innerHTML="",s.style.height="400px",s.style.width="100%";const t=document.createElement("div");t.id="leaflet-map",t.style.height="100%",t.style.width="100%",s.appendChild(t),console.log("初始化地图"),p=window.L.map("leaflet-map",{center:[20,0],zoom:2,minZoom:1,maxZoom:18}),window.L.tileLayer("https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors &copy; <a href="https://carto.com/attributions">CARTO</a>',subdomains:"abcd",maxZoom:19}).addTo(p),p.on("load",()=>console.log("地图加载完成"));const a=u.value.filter(o=>o.latitude&&o.longitude);if(console.log(`有 ${a.length} 个探针有有效坐标`),a.length===0){y.value="没有探针具有有效的地理位置信息",_.value=!1;return}const l=a.map(o=>o.avg_rtt).filter(o=>o>0&&o<1e4),I=o=>o<=0||o>=1e4?"#ef4444":o<=15?"#4ade80":o<=60?"#10b981":o<=180?"#f59e0b":"#ef4444";
1if(a.forEach(o=>{const L=I(o.avg_rtt),ft=window.L.divIcon({className:"custom-div-icon",html:`<div style="width:12px;height:12px;border-radius:50%;background-color:${L};box-shadow:0 0 0 2px white;"></div>`,iconSize:[12,12],iconAnchor:[6,6],popupAnchor:[0,-6]}),O=window.L.marker([o.latitude,o.longitude],{icon:ft}).addTo(p).bindPopup(`
2          <div class="map-popup-content">
3            <div class="popup-title">探针 ${o.probe_id}</div>
4            <div class="popup-location">${o.country_name||o.country||"未知国家"}, ${o.city||"未知城市"}</div>
5            <div class="popup-detail">
6              <div class="detail-item">
7                <span class="label">ASN:</span>
8                <span class="value">${o.asn?"AS"+o.asn:"未知"}</span>
9              </div>
10              <div class="detail-item">
11                <span class="label">平均延迟:</span>
12                <span class="value">${o.avg_rtt.toFixed(2)} ms</span>
13              </div>
14              <div class="detail-item">
15                <span class="label">最小延迟:</span>
16                <span class="value">${o.min_rtt.toFixed(2)} ms</span>
17              </div>
18              <div class="detail-item">
19                <span class="label">最大延迟:</span>
20                <span class="value">${o.max_rtt.toFixed(2)} ms</span>
21              </div>
22              <div class="detail-item">
23                <span class="label">丢包率:</span>
24                <span class="value ${o.packet_loss>0?"error":"success"}">${o.packet_loss.toFixed(1)}%</span>
25              </div>
26            </div>
27          </div>
28        `,{className:"map-custom-popup"});m.push(O),$.value&&o.probe_id===$.value&&O.openPopup()}),console.log(`已添加 ${m.length} 个标记点到地图`),m.length>0)try{const L=window.L.featureGroup(m).getBounds();L.isValid()?(console.log("设置地图边界以显示所有标记"),p.fitBounds(L.pad(.1))):(console.log("标记边界无效,使用默认视图"),p.setView([20,0],2))}catch(o){console.error("设置地图边界失败:",o),p.setView([20,0],2)}p.invalidateSize(!0),setTimeout(()=>{p&&(p.invalidateSize(!0),console.log("地图尺寸已重新计算"))},300)}catch(t){console.error("地图初始化失败:",t),y.value="地图加载失败: "+(t instanceof Error?t.message:String(t))}finally{_.value=!1}};return H(()=>{if(p)try{console.log("清理地图实例"),m.forEach(s=>{s&&p.removeLayer(s)}),m=[],p.remove(),p=null}catch(s){console.error("清理地图时出错:",s)}}),U($,s=>{if(!s||!p||!m.length)return;const t=u.value.findIndex(a=>a.probe_id===s);if(t>=0&&t<m.length){const a=m[t];a.openPopup();const l=a.getLatLng();p.setView(l,6)}}),U(f,s=>{s&&(W(),G())},{deep:!0}),U(x,s=>{if(!s){const t=u.value.filter(a=>a.latitude&&a.longitude);console.log(`地理信息加载完成,有 ${t.length} 个探针有有效坐标`),t.length===0?(h.value?(y.value="没有探针具有有效的地理位置信息,请检查API KEY设置",setTimeout(()=>{G()},2e3)):(y.value="未找到有效的地理位置信息,请设置IPInfo API Key",N.value=!0),_.value=!1):vt().catch(a=>{console.error("初始化地图失败:",a),y.value="无法加载地图: "+(a instanceof Error?a.message:"未知错误")})}}),Q(async()=>{q().catch(s=>{console.error("预加载Leaflet库失败:",s)})}),(s,t)=>{const a=ht;return d(),r(E,null,[e("div",Pt,[J(a,{title:"全球PING",description:"使用RIPE Atlas网络探针从全球各地对目标主机进行PING测试,分析网络延迟和可达性。"}),e("div",$t,[e("div",Et,[t[37]||(t[37]=e("h2",{class:"card-title text-2xl mb-6 text-center justify-center"},[e("i",{class:"fas fa-globe-asia mr-2"}),c("全球PING ")],-1)),e("div",At,[e("div",Ct,[e("div",Kt,[e("div",Mt,[t[5]||(t[5]=e("label",{class:"label"},[e("span",{class:"label-text"},"目标地址")],-1)),e("div",Rt,[T(e("input",{"onUpdate:modelValue":t[0]||(t[0]=l=>j(P)?P.value=l:null),type:"text",placeholder:"8.8.8.8 或 google.com",class:"input input-bordered join-item flex-1 bg-opacity-70 bg-base-100",onKeyup:bt(B,["enter"])},null,544),[[X,n(P)]]),e("button",{class:"btn btn-primary join-item w-24",onClick:B,disabled:!n(z)},[...t[4]||(t[4]=[e("i",{class:"fas fa-play mr-1"},null,-1),e("span",{class:"hidden sm:inline"},"测试",-1)])],8,Nt)])])]),e("div",St,[e("div",Tt,[t[7]||(t[7]=e("label",{class:"label"},[e("span",{class:"label-text"},"探针数量")],-1)),T(e("select",{"onUpdate:modelValue":t[1]||(t[1]=l=>j(C)?C.value=l:null),class:"select select-bordered w-full bg-opacity-70 bg-base-100"},[...t[6]||(t[6]=[e("option",{value:"50"},"50个",-1),e("option",{value:"100"},"100个",-1),e("option",{value:"200"},"200个",-1),e("option",{value:"300"},"300个",-1)])],512),[[tt,n(C)]])]),e("div",jt,[t[9]||(t[9]=e("label",{class:"label"},[e("span",{class:"label-text"},"IP版本")],-1)),T(e("select",{"onUpdate:modelValue":t[2]||(t[2]=l=>j(K)?K.value=l:null),class:"select select-bordered w-full bg-opacity-70 bg-base-100"},[...t[8]||(t[8]=[e("option",{value:"0"},"自动选择",-1),e("option",{value:"4"},"IPv4",-1),e("option",{value:"6"},"IPv6",-1)])],512),[[tt,n(K)]])]),e("div",Dt,[e("label",{class:"label"},[t[11]||(t[11]=e("span",{class:"label-text"},"ipinfo.io API KEY",-1)),e("span",{class:"label-text-alt"},[e("button",{onClick:ut,class:"btn btn-xs btn-ghost"},[...t[10]||(t[10]=[e("i",{class:"fas fa-key mr-1"},null,-1),c("设置 ",-1)])])])]),e("div",Vt,[n(h)?(d(),r("span",Gt,i(n(h)),1)):(d(),r("span",Yt,"使用内置API KEY"))])])])]),e("div",Ft,[J(xt,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 transform -translate-y-4","enter-to-class":"opacity-100 transform translate-y-0","leave-active-class":"transition-all duration-300 ease-in","leave-from-class":"opacity-100 transform translate-y-0","leave-to-class":"opacity-0 transform -translate-y-4"},{default:yt(()=>[n(w)?(d(),r("div",Ut,[...t[12]||(t[12]=[e("span",{class:"loading loading-spinner loading-lg"},null,-1),e("p",{class:"mt-4 text-base-content/70"}
28," 正在启动全球 PING 测量... ",-1)])])):n(b)&&!n(f)?(d(),r("div",zt,[t[16]||(t[16]=e("span",{class:"loading loading-dots loading-lg"},null,-1)),e("p",Bt,[c(" 已启动测量 ID: "+i(n(b)),1),t[13]||(t[13]=e("br",null,null,-1)),t[14]||(t[14]=c(" 正在等待测量结果... ",-1))]),e("button",{class:"btn btn-primary mt-4",onClick:S},[...t[15]||(t[15]=[e("i",{class:"fas fa-sync-alt mr-1"},null,-1),c(" 刷新结果 ",-1)])])])):n(f)?(d(),r("div",Wt,[e("div",Zt,[e("div",qt,[e("div",null,[t[17]||(t[17]=e("h3",{class:"text-lg font-semibold"},[e("i",{class:"fas fa-info-circle mr-1 opacity-70"}),c(" 测量信息 ")],-1)),e("p",null,"目标: "+i(n(f).target),1),e("p",null,"测量 ID: "+i(n(f).measurement_id),1),e("p",null,"状态: "+i(n(f).status),1),e("p",null,"创建时间: "+i(at(n(f).created)),1)]),e("div",Ot,[e("button",{onClick:dt,class:"btn btn-sm btn-outline"},[t[18]||(t[18]=e("i",{class:"fas fa-link mr-1"},null,-1)),c(" "+i(n(V)?"已复制!":"复制链接"),1)]),n(f).ripe_url?(d(),r("a",{key:0,href:n(f).r
28ipe_url,target:"_blank",class:"btn btn-sm btn-outline"},[...t[19]||(t[19]=[e("i",{class:"fas fa-external-link-alt mr-1"},null,-1),c(" RIPE Atlas ",-1)])],8,Ht)):A("",!0)])]),n(f).results&&n(f).results.length>0?(d(),r("div",Qt,[t[34]||(t[34]=e("h3",{class:"text-lg font-semibold mb-4"},[e("i",{class:"fas fa-chart-bar mr-1 opacity-70"}),c(" 测量结果 ")],-1)),e("div",Jt,[e("div",Xt,[t[20]||(t[20]=e("div",{class:"stat-title"},"探针数量",-1)),e("div",te,i(n(f).results.length),1),t[21]||(t[21]=e("div",{class:"stat-desc"},"全球测量点",-1))]),e("div",ee,[t[22]||(t[22]=e("div",{class:"stat-title"},"平均延迟",-1)),e("div",se,i(ot())+" ms",1),t[23]||(t[23]=e("div",{class:"stat-desc"},"全球平均",-1))]),e("div",le,[t[24]||(t[24]=e("div",{class:"stat-title"},"延迟范围",-1)),e("div",ae,i(nt())+"-"+i(it())+" ms",1),t[25]||(t[25]=e("div",{class:"stat-desc"},"最小-最大",-1))]),e("div",oe,[t[26]||(t[26]=e("div",{class:"stat-title"},"丢包率",-1)),e("div",ne,i(rt())+"%",1),t[27]||(t[27]=e("div",{class:"stat-desc"},"平均",-1))])]),e("div",ie,[t[30]||(t[30]=e("div",{class:"flex justify-between items-center mb-2"},[e("h4",{class:"text-md font-semibold"},[e("i",{class:"fas fa-map-marked-alt mr-1 opacity-70"}),c(" 探针分布地图 ")]),e("div",{class:"flex gap-2 text-xs"},[e("div",{class:"flex items-center"},[e("span",{class:"inline-block w-3 h-3 rounded-full bg-[#4ade80] mr-1"}),c(" ≤15ms ")]),e("div",{class:"flex items-center"},[e("span",{class:"inline-block w-3 h-3 rounded-full bg-[#10b981] mr-1"}),c(" ≤60ms ")]),e("div",{class:"flex items-center"},[e("span",{class:"inline-block w-3 h-3 rounded-full bg-warning mr-1"}),c(" ≤180ms ")]),e("div",{class:"flex items-center"},[e("span",{class:"inline-block w-3 h-3 rounded-full bg-error mr-1"}),c(" >180ms ")])])],-1)),e("div",{id:"ripe-map",class:D(["w-full h-[400px] rounded-lg shadow-inner bg-base-200 bg-opacity-50",{"loading-container":n(_)||n(x)}])},[n(_)||n(x)?(d(),r("div",re,[t[28]||(t[28]=e("span",{class:"loading loading-spinner loading-md"},null,-1)),e("span",ce,i(n(x)?"正在获取地理位置信息...":"加载地图中..."),1)])):A("",!0)],2),!n(_)&&!n(x)&&n(y)?(d(),r("div",de,[t[29]||(t[29]=e("i",{class:"fas fa-exclamation-triangle mr-1"},null,-1)),c(" "+i(n(y)),1)])):A("",!0)]),e("div",ue,[e("table",pe,[t[33]||(t[33]=e("thead",null,[e("tr",null,[e("th",null,"探针"),e("th",null,"位置"),e("th",null,"ASN"),e("th",null,"延迟 (ms)"),e("th",null,"丢包率"),e("th",null,"操作")])],-1)),e("tbody",null,[(d(!0),r(E,null,_t(n(u),l=>(d(),r("tr",{key:l.probe_id,class:D({"bg-base-200 bg-opacity-30":n($)===l.probe_id})},[e("td",null,i(l.probe_id),1),e("td",null,[l.loading_geo?(d(),r("span",ve)):(d(),r(E,{key:1},[t[31]||(t[31]=e("i",{class:"fas fa-globe-americas mr-1 opacity-50"},null,-1)),c(" "+i(l.country_name||l.country||"未知")+" ",1),l.city?(d(),r("span",fe,", "+i(l.city),1)):A("",!0)],64))]),e("td",null,[l.loading_geo?(d(),r("span",me)):(d(),r("span",ge,[l.asn?(d(),r(E,{key:0},[c(" AS"+i(l.asn),1)],64)):(d(),r(E,{key:1},[c(i(l._raw?.as_v4||l._raw?.as_v6||l._raw?.as||"未知"),1)],64))]))]),e("td",null,[e("div",be,[e("span",null,i(l.avg_rtt||"-"),1),e("span",ye,i(l.min_rtt||"-")+" - "+i(l.max_rtt||"-"),1)])]),e("td",null,[e("span",{class:D(l.packet_loss>0?"text-error":"text-success")},i(l.packet_loss)+"% ",3)]),e("td",null,[e("button",{onClick:I=>$.value=l.probe_id,class:"btn btn-xs btn-outline"},[...t[32]||(t[32]=[e("i",{class:"fas fa-eye mr-1"},null,-1),c(" 查看 ",-1)])],8,xe)])],2))),128))])])])])):(d(),r("div",he,[...t[35]||(t[35]=[e("i",{class:"fas fa-exclamation-circle"},null,-1),e("span",null,"暂无测量结果数据,请稍后刷新查看。",-1)])]))])])):n(g)?(d(),r("div",_e,[t[36]||(t[36]=e("i",{class:"fas fa-exclamation-triangle"},null,-1)),e("span",null,i(n(g)),1)])):A("",!0)]),_:1})])])])])]),e("div",{class:D(["modal",{"modal-open":n(N)}])},[e("div",we,[t[40]||(t[40]=e("h3",{class:"font-bold text-lg mb-4"},"ipinfo.io API KEY 设置",-1)),t[41]||(t[41]=e("p",{class:"mb-4"},"请输入您的 ipinfo.io API KEY,用于获取IP地理位置信息。如不设置将使用内置的API KEY。",-1)),e("div",ke,[t[38]||(t[38]=e("label",{class:"label"},[e("span",{class:"label-text"},"API KEY")],-1)),T(e("input",{"onUpdate:modelValue":t[3]||(t[3]=l=>j(k)?k.value=l:null),type:"text",placeholder:"输入您的API KEY",class:"input input-bordered w-full"},null,512),[[X,n(k)]]),t[39]||(t[39]=e("label",{class:"label"},[e("span",{class:"label-text-alt"},[c("可以在 "),e("a",{href:"https://ipinfo.io",target:"_blank",class:"link"},"ipinfo.io"),c(" 获取API KEY")])],-1))]),e("div",{class:"modal-action"},[e("button",{onClick:F,class:"btn btn-ghost"},"取消"),e("button",{onClick:pt,class:"btn btn-primary"},"保存")])]),e("div",{class:"modal-backdrop",onClick:F})],2)],64)}}}),Ae=wt(Ie,[["__scopeId","data-v-9fb2b9c5"]]);export{Ae as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.