Improves geoip rule handling in singbox

DHR60 2025-04-08 20:12:03 +08:00
parent c15fa64bad
commit 0fc5ce16bf
1 changed files with 12 additions and 8 deletions

View File

@ -1375,24 +1375,28 @@ public class CoreConfigSingboxService
{ {
return false; return false;
} }
else if (address.StartsWith("geoip:!"))
{
return false;
}
else if (address.Equals("geoip:private")) else if (address.Equals("geoip:private"))
{ {
rule.ip_is_private = true; rule.ip_is_private = true;
} }
else if (address.StartsWith("geoip:")) else if (address.StartsWith("geoip:"))
{ {
if (rule.geoip is null) rule.geoip ??= new();
{ rule.geoip = new(); }
rule.geoip?.Add(address.Substring(6)); rule.geoip?.Add(address.Substring(6));
} }
else if (address.Equals("geoip:!private"))
{
rule.ip_is_private = false;
}
else if (address.StartsWith("geoip:!"))
{
rule.geoip ??= new();
rule.geoip?.Add(address.Substring(6));
rule.invert = true;
}
else else
{ {
if (rule.ip_cidr is null) rule.ip_cidr ??= new();
{ rule.ip_cidr = new(); }
rule.ip_cidr?.Add(address); rule.ip_cidr?.Add(address);
} }
return true; return true;