| 12 |
- import{n,a$ as B,d as D,c as _,f as k,j as F,Z as x,$ as P,a0 as u,T as t,aC as G,a7 as o,b4 as S,aG as Q,aQ as z,a5 as p,a6 as a,a9 as j,a1 as X,bt as Z,bA as y,bc as C,at as H}from"./index-a8341fa1.js";import"./dayjs-919e6097.js";import{s as J}from"./debug-cfb58f15.js";import"./index-298cfc47.js";import{F as W}from"./Form-49be2713.js";import{A as Y}from"./index-56cacbd2.js";import{P as K}from"./index-04d608f8.js";import{_ as b}from"./FormItem-0af405a4.js";import{c as ee,b as te}from"./index-669a8e6a.js";import"./toInteger-461bf1e0.js";var oe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M719.4 499.1l-296.1-215A15.9 15.9 0 00398 297v430c0 13.1 14.8 20.5 25.3 12.9l296.1-215a15.9 15.9 0 000-25.8zm-257.6 134V390.9L628.5 512 461.8 633.1z"}}]},name:"play-circle",theme:"outlined"};const le=oe;function L(i){for(var e=1;e<arguments.length;e++){var l=arguments[e]!=null?Object(arguments[e]):{},s=Object.keys(l);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(l).filter(function(d){return Object.getOwnPropertyDescriptor(l,d).enumerable}))),s.forEach(function(d){re(i,d,l[d])})}return i}function re(i,e,l){return e in i?Object.defineProperty(i,e,{value:l,enumerable:!0,configurable:!0,writable:!0}):i[e]=l,i}var $=function(e,l){var s=L({},e,l.attrs);return n(B,L({},s,{icon:le}),null)};$.displayName="PlayCircleOutlined";$.inheritAttrs=!1;const ae=$;var ne={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z"}}]},name:"stop",theme:"outlined"};const se=ne;function A(i){for(var e=1;e<arguments.length;e++){var l=arguments[e]!=null?Object(arguments[e]):{},s=Object.keys(l);typeof Object.getOwnPropertySymbols=="function"&&(s=s.concat(Object.getOwnPropertySymbols(l).filter(function(d){return Object.getOwnPropertyDescriptor(l,d).enumerable}))),s.forEach(function(d){ie(i,d,l[d])})}return i}function ie(i,e,l){return e in i?Object.defineProperty(i,e,{value:l,enumerable:!0,configurable:!0,writable:!0}):i[e]=l,i}var N=function(e,l){var s=A({},e,l.attrs);return n(B,A({},s,{icon:se}),null)};N.displayName="StopOutlined";N.inheritAttrs=!1;const ue=N,de={style:{padding:"24px","max-width":"1400px",margin:"0 auto"}},me={key:1,style:{"margin-bottom":"24px"}},ce={style:{"text-align":"center",padding:"20px"}},pe={style:{"margin-top":"16px"}},fe={style:{"font-size":"24px","font-weight":"bold",color:"#1890ff"}},ve={style:{"margin-top":"8px",color:"#666"}},_e={class:"form-layout"},be={class:"form-section"},ge={class:"form-help"},he={class:"form-help"},ye={class:"form-help"},Oe={class:"form-help"},we={class:"form-help"},xe={class:"help-section"},Se={class:"help-content"},Ce={class:"help-item"},Pe={class:"help-item"},ze={class:"help-list"},je={class:"help-item"},$e={class:"help-list"},Ne={class:"help-item"},Ue={class:"help-item"},ke=D({name:"TcpdumpCapture"}),Le=D({...ke,setup(i){const{t:e}=G(),l=_({interface:"",filter:"",extra_args:"",duration:5,password:""}),s=_(!1),d=_(0),g=_(0),v=_(!1),f=_(""),I=k(()=>g.value===0?0:Math.round((g.value-d.value)/g.value*100)),E=k(()=>{const m=Math.floor(d.value/60),r=d.value%60;return`${m.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`});let O=null;const M={duration:[{required:!0,get message(){return e("routes.monitor.请输入抓包持续时间")}},{validator:(m,r)=>r?isNaN(r)||r<=0?Promise.reject(e("routes.monitor.持续时间必须是大于0的数字")):r>300?Promise.reject(e("routes.monitor.持续时间不能超过300秒")):Promise.resolve():Promise.resolve()}]},R=m=>{d.value=m,g.value=m,O=setInterval(()=>{d.value--,d.value<=0&&w()},1e3)},w=()=>{O&&(clearInterval(O),O=null),d.value=0,g.value=0},T=async()=>{try{if(!l.value.duration){f.value=e("routes.monitor.持续时间是必填项");return}const m=l.value.duration;if(isNaN(m)||m<=0){f.value=e("routes.monitor.持续时间必须是大于0的数字");return}if(m>300){f.value=e("routes.monitor.持续时间不能超过300秒");return}f.value="",s.value=!0,v.value=!0,R(m),C.info(e("routes.monitor.开始抓包预计完成",{seconds:m}));const c=await(await J({interface:l.value.interface.trim(),filter:l.value.filter.trim(),extra_args:l.value.extra_args.trim(),duration:l.value.duration,password:l.value.password.trim()})).blob(),U=window.URL.createObjectURL(c),h=document.createElement("a");h.href=U,h.download="tcpdump.txt",document.body.appendChild(h),h.click(),document.body.removeChild(h),window.URL.revokeObjectURL(U),C.success(e("routes.monitor.抓包完成文件已下载"))}catch(m){console.error("抓包失败:",m),f.value=m instanceof Error?m.message:e("routes.monitor.抓包失败请检查"),C.error(e("routes.monitor.抓包失败"))}finally{s.value=!1,v.value=!1,w()}},V=()=>{s.value=!1,v.value=!1,w(),C.info(e("routes.monitor.已停止抓包"))},q=()=>{l.value={interface:"",filter:"",extra_args:"",duration:0,password:""},f.value=""};return F(()=>{w()}),(m,r)=>(x(),P(t(te),null,{default:u(()=>[n(t(ee),null,{default:u(()=>[o("div",de,[n(t(S),{title:t(e)("routes.monitor.网络抓包分析"),bordered:!1},{extra:u(()=>[n(t(Q),null,{default:u(()=>[n(t(z),{onClick:q,disabled:s.value},{default:u(()=>[p(a(t(e)("routes.monitor.重置")),1)]),_:1},8,["disabled"])]),_:1})]),default:u(()=>[f.value?(x(),P(t(Y),{key:0,message:f.value,type:"error","show-icon":"",closable:"",onClose:r[0]||(r[0]=c=>f.value=""),style:{"margin-bottom":"16px"}},null,8,["message"])):j("",!0),s.value?(x(),X("div",me,[n(t(S),{size:"small",title:t(e)("routes.monitor.抓包进行中")},{default:u(()=>[o("div",ce,[n(t(Z),{size:"large"}),o("div",pe,[o("div",fe,a(E.value),1),o("div",ve,a(t(e)("routes.monitor.剩余时间")),1)]),n(t(K),{percent:I.value,"stroke-color":{"0%":"#108ee9","100%":"#87d068"},style:{"margin-top":"16px"}},null,8,["percent"]),n(t(z),{type:"primary",danger:"",onClick:V,style:{"margin-top":"16px"}},{default:u(()=>[n(t(ue)),p(" "+a(t(e)("routes.monitor.停止抓包")),1)]),_:1})])]),_:1},8,["title"])])):j("",!0),o("div",_e,[o("div",be,[n(t(S),{title:t(e)("routes.monitor.配置参数"),class:"form-card"},{default:u(()=>[n(t(W),{model:l.value,rules:M,layout:"vertical",disabled:s.value,class:"config-form"},{default:u(()=>[n(t(b),{label:t(e)("routes.monitor.网络接口"),name:"interface",class:"form-item"},{default:u(()=>[n(t(y),{value:l.value.interface,"onUpdate:value":r[1]||(r[1]=c=>l.value.interface=c),placeholder:t(e)("routes.monitor.网络接口占位符"),disabled:s.value,size:"large"},null,8,["value","placeholder","disabled"]),o("div",ge,a(t(e)("routes.monitor.网络接口帮助")),1)]),_:1},8,["label"]),n(t(b),{label:t(e)("routes.monitor.过滤条件"),name:"filter",class:"form-item"},{default:u(()=>[n(t(y),{value:l.value.filter,"onUpdate:value":r[2]||(r[2]=c=>l.value.filter=c),placeholder:t(e)("routes.monitor.过滤条件占位符"),disabled:s.value,size:"large"},null,8,["value","placeholder","disabled"]),o("div",he,a(t(e)("routes.monitor.过滤条件帮助")),1)]),_:1},8,["label"]),n(t(b),{label:t(e)("routes.monitor.额外参数"),name:"extra_args",class:"form-item"},{default:u(()=>[n(t(y),{value:l.value.extra_args,"onUpdate:value":r[3]||(r[3]=c=>l.value.extra_args=c),placeholder:t(e)("routes.monitor.额外参数占位符"),disabled:s.value,size:"large"},null,8,["value","placeholder","disabled"]),o("div",ye,a(t(e)("routes.monitor.额外参数帮助")),1)]),_:1},8,["label"]),n(t(b),{label:t(e)("routes.monitor.Sudo密码"),name:"password",class:"form-item"},{default:u(()=>[n(t(y).Password,{value:l.value.password,"onUpdate:value":r[4]||(r[4]=c=>l.value.password=c),placeholder:t(e)("routes.monitor.Sudo密码占位符"),disabled:s.value,size:"large"},null,8,["value","placeholder","disabled"]),o("div",Oe,a(t(e)("routes.monitor.Sudo密码帮助")),1)]),_:1},8,["label"]),n(t(b),{label:t(e)("routes.monitor.抓包时长"),name:"duration",required:"",class:"form-item"},{default:u(()=>[n(t(y),{value:l.value.duration,"onUpdate:value":r[5]||(r[5]=c=>l.value.duration=c),placeholder:t(e)("routes.monitor.抓包时长占位符"),type:"number",min:1,max:300,disabled:s.value,size:"large"},null,8,["value","placeholder","disabled"]),o("div",we,a(t(e)("routes.monitor.抓包时长帮助")),1)]),_:1},8,["label"]),n(t(b),{class:"submit-section"},{default:u(()=>[n(t(z),{type:"primary",onClick:T,loading:v.value,disabled:s.value,size:"large",class:"submit-btn"},{default:u(()=>[v.value?j("",!0):(x(),P(t(ae),{key:0})),p(" "+a(v.value?t(e)("routes.monitor.抓包中"):t(e)("routes.monitor.开始抓包")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1},8,["model","disabled"])]),_:1},8,["title"])]),o("div",xe,[n(t(S),{title:t(e)("routes.monitor.使用说明"),class:"help-card"},{default:u(()=>[o("div",Se,[o("div",Ce,[o("h4",null,a(t(e)("routes.monitor.网络接口说明标题")),1),o("p",null,a(t(e)("routes.monitor.网络接口说明内容")),1)]),o("div",Pe,[o("h4",null,a(t(e)("routes.monitor.过滤条件说明标题")),1),o("p",null,a(t(e)("routes.monitor.过滤条件说明内容")),1),o("ul",ze,[o("li",null,[r[6]||(r[6]=o("code",null,"host 192.168.1.1",-1)),p(" - "+a(t(e)("routes.monitor.过滤示例1")),1)]),o("li",null,[r[7]||(r[7]=o("code",null,"port 80",-1)),p(" - "+a(t(e)("routes.monitor.过滤示例2")),1)]),o("li",null,[r[8]||(r[8]=o("code",null,"tcp and port 443",-1)),p(" - "+a(t(e)("routes.monitor.过滤示例3")),1)]),o("li",null,[r[9]||(r[9]=o("code",null,"icmp",-1)),p(" - "+a(t(e)("routes.monitor.过滤示例4")),1)])])]),o("div",je,[o("h4",null,a(t(e)("routes.monitor.额外参数说明标题")),1),o("p",null,a(t(e)("routes.monitor.额外参数说明内容")),1),o("ul",$e,[o("li",null,[r[10]||(r[10]=o("code",null,"-v",-1)),p(" - "+a(t(e)("routes.monitor.额外参数示例1")),1)]),o("li",null,[r[11]||(r[11]=o("code",null,"-n",-1)),p(" - "+a(t(e)("routes.monitor.额外参数示例2")),1)]),o("li",null,[r[12]||(r[12]=o("code",null,"-X",-1)),p(" - "+a(t(e)("routes.monitor.额外参数示例3")),1)])])]),o("div",Ne,[o("h4",null,a(t(e)("routes.monitor.Sudo密码说明标题")),1),o("p",null,a(t(e)("routes.monitor.Sudo密码说明内容")),1)]),o("div",Ue,[o("h4",null,a(t(e)("routes.monitor.抓包时长说明标题")),1),o("p",null,a(t(e)("routes.monitor.抓包时长说明内容")),1)])])]),_:1},8,["title"])])])]),_:1},8,["title"])])]),_:1})]),_:1}))}});const Fe=H(Le,[["__scopeId","data-v-815fab44"]]);export{Fe as default};
- //# sourceMappingURL=tcpdump-e21759cb.js.map
|