示例#1
0
        public bool IsInRange(IPAddress _ip)
        {
            sites = GetWebsites();
            foreach (var site in sites.Websites)
            {
                if (site.IsSelected == true)
                {
                    for (int i = 0; i < site.IPAddressStart.Length; i++)
                    {
                        IPAddress ipAddressStart = IPAddress.Parse(site.IPAddressStart[i]);
                        IPAddress ipAddressEnd   = IPAddress.Parse(site.IPAddressEnd[i]);
                        byte[]    ipStart        = ipAddressStart.GetAddressBytes();
                        byte[]    ipEnd          = ipAddressEnd.GetAddressBytes();
                        byte[]    ip             = _ip.GetAddressBytes();

                        if (
                            //проверка на нижний предел диапазона
                            ip[0] == ipStart[0] &&
                            ip[1] == ipStart[1] &&
                            ip[2] >= ipStart[2] &&
                            //проверка на верхний предел диапазона
                            ip[0] == ipEnd[0] &&
                            ip[1] == ipEnd[1] &&
                            ip[2] <= ipEnd[2]
                            )
                        {
                            name = site.Name;
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
示例#2
0
        //получаем все IP для блокировки
        private string GetAllRemoteAddresses()
        {
            string str            = "";
            string serializedText = "";

            using (StreamReader sr = new StreamReader(path, Encoding.Default))
            {
                serializedText = sr.ReadToEnd();
            }
            BlockWebsitesModel newCollection = JsonConvert.DeserializeObject <BlockWebsitesModel>(serializedText);

            foreach (var item in newCollection.Websites)
            {
                if (item.IsSelected == true)
                {
                    foreach (var ip in item.IP)
                    {
                        str += ip + ",";
                    }
                }
            }
            //удаление последней ,
            str.Remove(str.Length - 1, 1);

            return(str);
        }
示例#3
0
        public bool ChangeBlockWebsites(List <WebsitesModel> newList)
        {
            try
            {
                string serializedText = "";

                using (StreamReader sr = new StreamReader(pathWebsites, Encoding.Default))
                {
                    serializedText = sr.ReadToEnd();
                }
                BlockWebsitesModel collection = JsonConvert.DeserializeObject <BlockWebsitesModel>(serializedText);

                for (int i = 0; i < collection.Websites.Length; i++)
                {
                    collection.Websites[i].IsSelected = newList[i].IsSelected;
                }

                //в json
                string serialized = JsonConvert.SerializeObject(collection);

                //запись в файл
                StreamWriter sw = new StreamWriter(pathWebsites);
                sw.Write(serialized);
                sw.Close();
                block.DeleteRule();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#4
0
        public bool Add(string _domen, string _ipDns, string _ipRange)
        {
            try
            {
                //считываем текущие сайты
                string serializedText = "";

                using (StreamReader sr = new StreamReader(path, Encoding.Default))
                {
                    serializedText = sr.ReadToEnd();
                }
                BlockWebsitesModel collection = JsonConvert.DeserializeObject <BlockWebsitesModel>(serializedText);

                //создаем объект с данными нового сайта
                string[]      ipDns   = _ipDns.Trim().Split(',');
                int           length  = ipDns.Length;
                string[]      ipRange = _ipRange.Trim().Split('-');
                int           number  = collection.Websites.Length;
                List <string> listIP  = new List <string>();
                for (int i = 0; i < ipDns.Length; i++)
                {
                    listIP.Add(ipDns[i]);
                }

                BlockWebsitesModel newCollection = new BlockWebsitesModel();
                newCollection.Websites = new Website[number + 1];
                for (int i = 0; i < collection.Websites.Length; i++)
                {
                    newCollection.Websites[i] = collection.Websites[i];
                }

                newCollection.Websites[number] = new Website()
                {
                    Name           = _domen,
                    IP             = listIP.ToArray <string>(),
                    IPAddressStart = new string[1] {
                        ipRange[0]
                    },
                    IPAddressEnd = new string[1] {
                        ipRange[1]
                    },
                    IsSelected = true,
                };

                //в json
                string serialized = JsonConvert.SerializeObject(newCollection);

                //записываем в файл обратно
                StreamWriter sw = new StreamWriter(path);
                sw.Write(serialized);
                sw.Close();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#5
0
        //получаем все сайты из файла
        private BlockWebsitesModel GetWebsites()
        {
            string serializedText = "";

            using (StreamReader sr = new StreamReader(path, Encoding.Default))
            {
                serializedText = sr.ReadToEnd();
            }
            BlockWebsitesModel newCollection = JsonConvert.DeserializeObject <BlockWebsitesModel>(serializedText);

            return(newCollection);
        }
示例#6
0
        //список для вывода в грид
        public List <WebsitesModel> GetList()
        {
            string serializedText = "";

            using (StreamReader sr = new StreamReader(pathWebsites, Encoding.Default))
            {
                serializedText = sr.ReadToEnd();
            }
            BlockWebsitesModel collection = JsonConvert.DeserializeObject <BlockWebsitesModel>(serializedText);

            listWebsites = new List <WebsitesModel>();

            foreach (var item in collection.Websites)
            {
                WebsitesModel site = new WebsitesModel()
                {
                    Name       = item.Name,
                    RangeIP    = item.IPAddressStart[0] + " - " + item.IPAddressEnd[0],
                    IsSelected = item.IsSelected,
                };
                listWebsites.Add(site);
            }
            return(listWebsites);
        }
        public void Write()
        {
            //вебсайты для блокировки по умолчанию
            BlockWebsitesModel collection = new BlockWebsitesModel();

            collection.Websites    = new Website[4];
            collection.Websites[0] = new Website()
            {
                Name = "vk.com",
                IP   = new string[2] {
                    "87.240.165.82", "95.213.11.180"
                },
                IPAddressStart = new string[2] {
                    "95.213.4.0", "87.240.160.0"
                },
                IPAddressEnd = new string[2] {
                    "95.213.7.255", "87.240.191.255"
                },
                IsSelected = true,
            };
            collection.Websites[1] = new Website()
            {
                Name = "facebook.com",
                IP   = new string[1] {
                    "31.13.72.36"
                },
                IPAddressStart = new string[2] {
                    "31.13.93.0", "31.13.72.0"
                },
                IPAddressEnd = new string[2] {
                    "31.13.93.255", "31.13.72.255"
                },
                IsSelected = true,
            };
            collection.Websites[2] = new Website()
            {
                Name = "ok.ru",
                IP   = new string[3] {
                    "5.61.23.5", "217.20.156.159", "217.20.155.58"
                },
                IPAddressStart = new string[2] {
                    "5.61.23.0", "217.20.152.0"
                },
                IPAddressEnd = new string[2] {
                    "5.61.23.255", "217.20.159.255"
                },
                IsSelected = true,
            };
            collection.Websites[3] = new Website()
            {
                Name = "mail.ru",
                IP   = new string[4] {
                    "217.69.139.199", "217.69.139.202", "94.100.180.199", "94.100.180.202"
                },
                IPAddressStart = new string[2] {
                    "94.100.176.0", "217.69.136.0"
                },
                IPAddressEnd = new string[2] {
                    "94.100.183.255", "217.69.141.255"
                },
                IsSelected = true,
            };

            //в json
            string serialized = JsonConvert.SerializeObject(collection);

            //запись в файл
            StreamWriter sw = new StreamWriter(path);

            sw.Write(serialized);
            sw.Close();
        }