This commit is contained in:
Christian Hesse 2025-10-15 19:42:05 +02:00
parent 349b3d5028
commit d2f7a6dcef

View file

@ -59,20 +59,19 @@
:local ListComment ("managed by " . $ScriptName); :local ListComment ("managed by " . $ScriptName);
:local GenList ($ScriptName . "-" . [ $GetRandom20CharAlNum ]); :local GenList ($ScriptName . "-" . [ $GetRandom20CharAlNum ]);
:local Maskv4 ({});
:for I from=0 to=31 do={ :for I from=0 to=31 do={
/ip/firewall/address-list/add dynamic=yes timeout=30s list=$GenList address=("255.255.255.255/" . $I) comment=$I; /ip/firewall/address-list/add dynamic=yes timeout=30s list=$GenList address=("255.255.255.255/" . $I) comment=$I;
} }
:local Maskv4 ({ "32"=255.255.255.255; });
:foreach AddressList in=[ /ip/firewall/address-list/find where list=$GenList ] do={ :foreach AddressList in=[ /ip/firewall/address-list/find where list=$GenList ] do={
:local Address [ /ip/firewall/address-list/get $AddressList ]; :local Address [ /ip/firewall/address-list/get $AddressList ];
:set ($Maskv4->($Address->"comment")) [ :toip [ :pick ($Address->"address") 0 [ :find ($Address->"address") "/" ] ] ]; :set ($Maskv4->($Address->"comment")) [ :toip [ :pick ($Address->"address") 0 [ :find ($Address->"address") "/" ] ] ];
} }
:set ($Maskv4->"32") 255.255.255.255;
:local Maskv6 ({}); :for I from=0 to=127 do={
:for I from=0 to=128 do={
/ipv6/firewall/address-list/add dynamic=yes timeout=30s list=$GenList address=("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/" . $I) comment=$I; /ipv6/firewall/address-list/add dynamic=yes timeout=30s list=$GenList address=("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/" . $I) comment=$I;
} }
:local Maskv6 ({ "128"=ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff; });
:foreach AddressList in=[ /ipv6/firewall/address-list/find where list=$GenList ] do={ :foreach AddressList in=[ /ipv6/firewall/address-list/find where list=$GenList ] do={
:local Address [ /ipv6/firewall/address-list/get $AddressList ]; :local Address [ /ipv6/firewall/address-list/get $AddressList ];
:set ($Maskv6->($Address->"comment")) [ :toip6 [ :pick ($Address->"address") 0 [ :find ($Address->"address") "/" ] ] ]; :set ($Maskv6->($Address->"comment")) [ :toip6 [ :pick ($Address->"address") 0 [ :find ($Address->"address") "/" ] ] ];
@ -155,6 +154,8 @@
:set Net [ :toip6 [ :pick $Address 0 $Slash ] ] :set Net [ :toip6 [ :pick $Address 0 $Slash ] ]
:set Cidr [ :pick $Address ($Slash + 1) [ :len $Address ] ]; :set Cidr [ :pick $Address ($Slash + 1) [ :len $Address ] ];
} }
:put ("Net: " . $Net);
:put ("Mask: " . ($Maskv6->$Cidr));
:set Address (([ :toip6 $Net ] & ($Maskv6->$Cidr)) . "/" . $Cidr); :set Address (([ :toip6 $Net ] & ($Maskv6->$Cidr)) . "/" . $Cidr);
:set Branch [ $GetBranch $Address ]; :set Branch [ $GetBranch $Address ];
:set ($IPv6Addresses->$Branch->$Address) $TimeOut; :set ($IPv6Addresses->$Branch->$Address) $TimeOut;