Beispiel #1
0
        JsonResult GetIpv6(string inip, string ip)
        {
            App_Start.GeoipContext.InitData();
            CityLocation ty         = null;
            CityIpV6     ty1        = new CityIpV6();
            IPAddress    incomingIp = IPAddress.Parse(ip);
            DateTime     strt       = DateTime.UtcNow;
            var          srch       = ip;
            var          lst        = App_Start.GeoipContext._cityv6.FindAll(t => t.network.StartsWith(srch));

            if (lst.Count == 0 && srch.IndexOf(":") > 0)
            {
                srch = srch.TrimEnd(':');
                lst  = App_Start.GeoipContext._cityv6.FindAll(t => t.network.StartsWith(srch));
            }
            if (lst.Count == 0 && srch.IndexOf(":") > -1)
            {
                srch = srch.Remove(srch.LastIndexOf(':'));
                lst  = App_Start.GeoipContext._cityv6.FindAll(t => t.network.StartsWith(srch));
            }
            if (lst.Count == 0 && srch.IndexOf(":") > -1)
            {
                srch = srch.Remove(srch.LastIndexOf(':'));
                lst  = App_Start.GeoipContext._cityv6.FindAll(t => t.network.StartsWith(srch));
            }
            if (lst.Count == 0 && srch.IndexOf(":") > -1)
            {
                srch = srch.Remove(srch.LastIndexOf(':'));
                lst  = App_Start.GeoipContext._cityv6.FindAll(t => t.network.StartsWith(srch));
            }
            if (lst.Count == 0)
            {
                lst = App_Start.GeoipContext._cityv6;
            }
            foreach (var row in lst)
            {
                IPNetwork network = IPNetwork.Parse(row.network);

                if (IPNetwork.Contains(network, incomingIp))
                {
                    Console.WriteLine(row.postal_code);
                    ty1 = row;
                    ty  = App_Start.GeoipContext._cityloc.Find(t => t.geoname_id == row.geoname_id);
                    if (ty != null)
                    {
                        Console.WriteLine(ty.ToString());
                    }
                    continue;
                }
            }
            DateTime end = DateTime.UtcNow;

            if (ty == null)
            {
                return(Json(new { Inip = inip, Message = "No data found" }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new
                {
                    Inip = inip,
                    Network = ty1,
                    Address = ty,
                    Start = strt.ToString(),
                    End = end.ToString(),
                    type = "IPv6"
                }, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #2
0
        public static void InitData()
        {
            string fileNamev4   = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/GeoLite2-City-CSV_20171107/GeoLite2-City-Blocks-IPv4.csv");
            string fileNamev6   = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/GeoLite2-City-CSV_20171107/GeoLite2-City-Blocks-IPv6.csv");
            string fileNamecloc = System.Web.Hosting.HostingEnvironment.MapPath("~/App_Data/GeoLite2-City-CSV_20171107/GeoLite2-City-Locations-en.csv");

            int idx = 0;

            if (_cityv4 == null || _cityv4.Count == 0)
            {
                _cityv4 = new List <CityIpV4>();
                foreach (var line in File.ReadLines(fileNamev4))
                {
                    if (idx == 0)
                    {
                        idx++;
                        continue;
                    }
                    _cityv4.Add(CityIpV4.FromCsv(line));
                }
                //_cityv4 = File.ReadAllLines(fileNamev4)
                //                               .Skip(1)
                //                               .Select(v => CityIpV4.FromCsv(v))
                //                               .ToList();
            }
            idx = 0;
            if (_cityv6 == null || _cityv6.Count == 0)
            {
                _cityv6 = new List <CityIpV6>();
                foreach (var line in File.ReadLines(fileNamev6))
                {
                    if (idx == 0)
                    {
                        idx++;
                        continue;
                    }
                    _cityv6.Add(CityIpV6.FromCsv(line));
                }

                //_cityv6 = File.ReadAllLines(fileNamev6)
                //                               .Skip(1)
                //                               .Select(v => CityIpV6.FromCsv(v))
                //                               .ToList();
            }
            idx = 0;
            if (_cityloc == null || _cityloc.Count == 0)
            {
                _cityloc = new List <CityLocation>();
                foreach (var line in File.ReadLines(fileNamecloc))
                {
                    if (idx == 0)
                    {
                        idx++;
                        continue;
                    }
                    _cityloc.Add(CityLocation.FromCsv(line));
                }

                //_cityloc = File.ReadAllLines(fileNamecloc)
                //                               .Skip(1)
                //                               .Select(v => CityLocation.FromCsv(v))
                //                               .ToList();
            }
        }