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:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors © <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.