diff --git a/Application/RConParsers/BaseRConParser.cs b/Application/RConParsers/BaseRConParser.cs index b98f66d27..46a8424ce 100644 --- a/Application/RConParsers/BaseRConParser.cs +++ b/Application/RConParsers/BaseRConParser.cs @@ -20,6 +20,7 @@ namespace IW4MAdmin.Application.RConParsers public class BaseRConParser : IRConParser { private readonly ILogger _logger; + private static string _botIpIndicator = "00000000."; public BaseRConParser(ILogger logger, IParserRegexFactory parserRegexFactory) { @@ -290,8 +291,15 @@ namespace IW4MAdmin.Application.RConParsers long networkId; var name = match.Values[Configuration.Status.GroupMapping[ParserRegex.GroupType.RConName]].TrimNewLine(); string networkIdString; + var ip = match.Values[Configuration.Status.GroupMapping[ParserRegex.GroupType.RConIpAddress]].Split(':')[0].ConvertToIP(); + if (match.Values[Configuration.Status.GroupMapping[ParserRegex.GroupType.RConIpAddress]] + .Contains(_botIpIndicator)) + { + ip = System.Net.IPAddress.Broadcast.ToString().ConvertToIP(); + } + try { networkIdString = match.Values[Configuration.Status.GroupMapping[ParserRegex.GroupType.RConNetworkId]]; diff --git a/SharedLibraryCore/PartialEntities/EFClient.cs b/SharedLibraryCore/PartialEntities/EFClient.cs index ca9c83340..01ba29822 100644 --- a/SharedLibraryCore/PartialEntities/EFClient.cs +++ b/SharedLibraryCore/PartialEntities/EFClient.cs @@ -100,7 +100,7 @@ namespace SharedLibraryCore.Database.Models [NotMapped] public int Score { get; set; } - [NotMapped] public bool IsBot => NetworkId == Name.GenerateGuidFromString(); + [NotMapped] public bool IsBot => NetworkId == Name.GenerateGuidFromString() || IPAddressString == System.Net.IPAddress.Broadcast.ToString(); [NotMapped] public bool IsZombieClient => IsBot && Name == "Zombie";