Пример #1
0
        public static void Parse()
        {
            if (!File.Exists(dhcpdFile))
            {
                return;
            }
            var content = File.ReadAllText(dhcpdFile);
            var model   = new DhcpdModel()
            {
                Active = false
            };
            var allow = DhcpdParser.ParseAllow(content);

            model.Allow = allow;
            model       = DhcpdParser.ParseParameters(model, content);
            model       = DhcpdParser.ParseKeySecret(model, content);
            var reservations = DhcpdParser.ParseReservation(content);

            model.Reservations = reservations;
            var classes = DhcpdParser.ParseClass(content);

            model.Classes = classes;
            var subnets = DhcpdParser.ParseSubnet(content);

            model.Subnets = subnets;
            Application.CurrentConfiguration.Services.Dhcpd = model;
            ConsoleLogger.Log("[dhcpd] import existing configuration");
        }
Пример #2
0
        //(key "[\w]+" {[\s\d\w\-;"=]+[\s]+};)
        public static DhcpdModel ParseKeySecret(DhcpdModel dhcpdConfigurationModel, string text)
        {
            var regex         = new Regex("(key \"[\\w]+\" {[\\s\\d\\w\\-;\"=]+[\\s]+};)");
            var matchedGroups = regex.Match(text).Groups;
            var capturedText  = matchedGroups[1].Value;

            dhcpdConfigurationModel.KeyName   = CaptureGroup(capturedText, "key \"([\\w]+)\"");
            dhcpdConfigurationModel.KeySecret = CaptureGroup(capturedText, "secret \"([\\s\\S]*)\";");
            return(dhcpdConfigurationModel);
        }
Пример #3
0
 public static DhcpdModel ParseParameters(DhcpdModel dhcpdConfigurationModel, string text)
 {
     dhcpdConfigurationModel.UpdateStaticLeases      = CaptureGroup(text, "update-static-leases[\\s]+([\\w\\-]+);");
     dhcpdConfigurationModel.UpdateConflictDetection = CaptureGroup(text, "update-conflict-detection[\\s]+([\\w\\-]+);");
     dhcpdConfigurationModel.UseHostDeclNames        = CaptureGroup(text, "use-host-decl-names[\\s]+([\\w\\-]+);");
     dhcpdConfigurationModel.DoForwardUpdates        = CaptureGroup(text, "do-forward-updates[\\s]+([\\w\\-]+);");
     dhcpdConfigurationModel.DoReverseUpdates        = CaptureGroup(text, "do-reverse-updates[\\s]+([\\w\\-]+);");
     dhcpdConfigurationModel.LogFacility             = CaptureGroup(text, "log-facility[\\s]+([\\w\\d\\-]+);");
     dhcpdConfigurationModel.DefaultLeaseTime        = CaptureGroup(text, "default-lease-time[\\s]+([\\d]+);");
     dhcpdConfigurationModel.MaxLeaseTime            = CaptureGroup(text, "max-lease-time[\\s]+([\\d]+);");
     dhcpdConfigurationModel.OptionRouters           = CaptureGroup(text, "option[\\s]+routers[\\s]+([\\w\\d\\-\\s.=\"]+);");
     dhcpdConfigurationModel.OptionLocalProxy        = CaptureGroup(text, "option[\\s]+local-proxy-config[\\s]+code[\\s]+([\\w\\d\\-\\s.=\"]+);");
     dhcpdConfigurationModel.OptionDomainName        = CaptureGroup(text, "option[\\s]+domain-name[\\s]+([\\w\\d\\-\\s.=\"]+);");
     dhcpdConfigurationModel.ZoneName           = CaptureGroup(text, "zone[\\s]+([\\w.\\d]+)[\\s]+{");
     dhcpdConfigurationModel.ZonePrimaryAddress = CaptureGroup(text, "zone[\\s]+[\\w.\\d]+[\\s]+{[\\s]+primary[\\s]+([.\\d]+);");
     dhcpdConfigurationModel.ZonePrimaryKey     = CaptureGroup(text, "zone[\\s]+[\\w.\\d]+[\\s]+{[\\s]+primary[\\s]+[.\\d]+;[\\s]+key[\\s]+([\\w\\d]+);");
     dhcpdConfigurationModel.DdnsUpdateStyle    = CaptureGroup(text, "ddns-update-style[\\s]+([\\w]+);");
     dhcpdConfigurationModel.DdnsUpdates        = CaptureGroup(text, "ddns-updates[\\s]+([\\w]+);");
     dhcpdConfigurationModel.DdnsDomainName     = CaptureGroup(text, "ddns-domainname[\\s]+\"([\\w\\d.]+)\";");
     dhcpdConfigurationModel.DdnsRevDomainName  = CaptureGroup(text, "ddns-rev-domainname[\\s]+\"([\\w\\d.\\-]+)\";");
     return(dhcpdConfigurationModel);
 }