я столкнулся с похожей проблемой но на форуме не было людей кто такие вещи делала, в общем я сам сделал маленькую утилитку если у вас есть дополнительные идеи по доработки вот https://disk.yandex.ru/d/9OvYIadFsGRPVw нужно все из архива извлечь в папку "res" рядом с проектом Add(MultiElementEx,14027658,245,147) { } BEGIN_SDK Add(EditMultiEx,15139202,21,21) { WorkCount=#36:doOpenPort=Открывает порт через UPnP| VarCount=#7:LocalIP|12:LocaLIP:Port|13:IP=Внешний IP|24:ExIPport=Внешний IP:port| DataCount=#33:IPadres=IP адрес в локальной сети|36:Port=Порт который необходимо открыть| Width=1147 Height=823 link(doOpenPort,3006749:doEvent1,[(42,27)(42,174)]) link(LocalIP,7808600:Var,[(27,796)(83,796)]) link(LocaLIP:Port,14022477:Var,[(34,807)(97,807)]) link(IP,12690098:Var,[(41,821)(111,821)]) link(ExIPport,10668399:Var,[(48,828)(146,828)]) } Add(Icon,16552321,882,91) { @Hint=#5:#main| Icon=[ZIP9E09000078DA636060044209090620A9C0D0C1C9C020C6C0C0A001C4402106030688381800E584B92118065C5C5C40380088EF03F17F28BE0F1563A0020E4032171D53C30E98BBCF43CD0B80B261FEA0D47C6C6E45F613ADCD1718E4E143EBF825257D2A50105E0E78E2945AF9039BF9D40C3F6CE65333FEFF13E9567C7ECAC6637E3615CCFF4FC3FC418EF9A4C42FB9650AB1E9935A6516ADF2C770AB3F04685C7F08D0A17E1AD6F547E3FFFF0C0C502C01C2F5087EE3F3FF0CC71BFF333C6780E00712EC600C176904E2FF8D0C7023FE494030DC884606006E6F9D7D] } Add(WinExec,16082486,280,168) { FileName="res\oupt.df" Mode=0 Point(doConsoleExec) Point(onConsoleResult) Point(onConsoleTerminate) link(Params,4727801:FString,[]) link(onConsoleResult,12834392:doAdd,[]) } Add(RE_Search,14353958,357,273) { Expression="Local LAN ip address : [\d\.]+|ExternalIPAddress = [\d\.]+|InternalIP:Port = [\d\.:]+|internal = [\d\.:]+|external [\d\.:]+" ModifierS=1 link(onMatch,1555130:doEvent1,[]) link(SourceStr,12834392:Text,[]) } Add(Hub,1555130,413,273) { link(onEvent1,15710741:doMultiReplace,[]) link(onEvent2,14353958:doExecNext,[(439,286)(439,274)(345,274)(345,286)]) } Add(MultiReplace,15710741,469,273) { ReplaceList="Local LAN ip address : #LocalIP = ;\r\nExternalIPAddress = #ExternalIP = ;\r\nInternalIPort = #LocalipIPPort = ;\r\nexternal #ExternalIPPort = ;" Delimiter="#" link(onResult,7243674:doSplit,[]) } Add(Hub,3006749,63,168) { OutCount=3 link(onEvent1,4727801:doString,[(105,174)(105,111)]) link(onEvent2,1239950:In,[(147,181)(147,167)]) link(onEvent3,16082486:doConsoleExec,[]) } Add(MultiStrPart,7243674,546,273) { Char="=" link(onSplit,855142:doCompare,[]) } Add(If_else,855142,637,273) { Op2=String(ExternalIP ) link(onTrue,1285809:doData,[]) link(onFalse,12915525:In,[]) link(Op1,7243674:Part1,[(643,261)(611,261)(611,317)(552,317)]) } Add(FormatStr,4727801,287,105) { Mask="-a %1 %2 %2 TCP" Point(FString) link(Str1,15139202:IPadres,[(293,63)(27,63)]) link(Str2,15139202:Port,[(300,50)(34,50)]) } Add(LineBreak,14524979,203,224) { link(Out,12834392:doClear,[(327,230)(327,195)]) Primary=[1239950,14,-63] } Add(If_else,6233141,630,413) { Op2=String(LocalIP ) link(onTrue,4698497:doData,[]) link(onFalse,16074539:In,[]) } Add(If_else,12577997,623,546) { Op2=String(InternalIP:Port ) link(onTrue,1669550:doData,[]) link(onFalse,740501:In,[]) } Add(If_else,7789139,623,707) { Op2=String(ExternalIPPort ) link(onTrue,4446381:doData,[]) } Add(StrList,12834392,357,182) { link(onChange,14353958:doExec,[(401,188)(401,230)(345,230)(345,279)]) } Add(LineBreakEx,10857792,553,343) { Caption="ipdate" Type=3 link(_Data,7243674:Part2,[]) } Add(LineBreakEx,7016047,721,504) { Caption="ipdate" Type=2 } Add(LineBreakEx,4156812,721,350) { Caption="ipdate" Type=2 } Add(LineBreakEx,6518563,700,651) { Caption="ipdate" Type=2 } Add(LineBreakEx,15244586,721,203) { Caption="ipdate" Type=2 } Add(DoData,1669550,721,546) { link(onEventData,13430840:doValue,[]) link(Data,7016047:getVar,[]) } Add(Memory,13430840,770,546) { } Add(DoData,4446381,700,707) { link(onEventData,12806602:doValue,[]) link(Data,6518563:getVar,[]) } Add(Memory,12806602,777,707) { } Add(DoData,4698497,721,413) { link(onEventData,16245449:doValue,[]) link(Data,4156812:getVar,[]) } Add(Memory,16245449,770,413) { } Add(DoData,1285809,721,273) { link(onEventData,15480270:doValue,[]) link(Data,15244586:getVar,[]) } Add(Memory,15480270,777,273) { } Add(LineBreak,14791531,560,413) { link(Out,6233141:doCompare,[]) Primary=[12915525,119,-133] } Add(LineBreak,14279588,560,546) { link(Out,12577997:doCompare,[]) Primary=[16074539,119,-126] } Add(LineBreak,12625781,560,707) { link(Out,7789139:doCompare,[]) Primary=[740501,105,-154] } Add(LineBreak,13395983,770,469) { Type=1 link(Data,16245449:Value,[]) Primary=[7808600,-693,266] } Add(LineBreak,5299879,770,595) { Type=1 link(Data,13430840:Value,[]) Primary=[14022477,-679,161] } Add(LineBreak,9437567,777,322) { Type=1 link(Data,15480270:Value,[]) Primary=[12690098,-672,455] } Add(LineBreak,7428399,777,756) { Type=1 link(Data,12806602:Value,[]) Primary=[10668399,-637,42] } END_SDK
Редактировалось 7 раз(а), последний 2022-05-15 11:40:47
|