Esempio n. 1
0
        public List <CountryCityModel> GetDataForNotFoundIPS(List <List_IP> ips)
        {
            List <List_IP>          NotFoundIps        = new List <List_IP>();
            List <CountryCityModel> freegeo_Table_Data = (from f in dc.freeGeoipDatas
                                                          //.AsNoTracking()
                                                          .AsEnumerable()
                                                          join i in ips on f.ip_num equals i.ipnum
                                                          where i.ipnum == f.ip_num
                                                          select new CountryCityModel()
            {
                ipnum = i.ipnum,
                Country = f.Country,
                CountryCode = f.CountryCode,
                City = f.City,
                Region = f.Region,
                PostalCode = f.PostalCode,
                latitude = f.Latitude,
                longitude = f.Longitude,
                metro_code = f.MetroCode,
                pk_shorturl_id = i.pk_shorturl_id,
                userAgent = i.userAgent
            }).ToList();

            if (freegeo_Table_Data.Count != 0)
            {
                if (freegeo_Table_Data.Count != ips.Count)
                {
                    NotFoundIps = ips.Where(p => !freegeo_Table_Data.Any(p2 => p2.ipnum == p.ipnum)).ToList();
                }
                //foreach(CountryCityModel obj in freegeo_Table_Data)
                //{
                //    UpdateCityCountry(obj);
                //}
            }
            else
            {
                NotFoundIps = ips;
            }
            if (NotFoundIps.Count != 0)
            {
                foreach (List_IP i in NotFoundIps)
                {
                    CountryCityModel obj = GetDataFromfreegeoip(i);
                    freegeo_Table_Data.Add(obj);
                }
            }
            return(freegeo_Table_Data);
        }
Esempio n. 2
0
        public void UpdateCityCountry(CountryCityModel obj)
        {
            try
            {
                //using (var dc = new shortenURLEntities())
                //{

                //    dc.SHORTURLDATAs.Where(x => x.PK_Shorturl == obj.pk_shorturl_id).Update(y => new SHORTURLDATA {
                //City = obj.City, Region = obj.Region, Country = obj.Country, CountryCode = obj.CountryCode, PostalCode = obj.PostalCode,
                //Latitude = obj.latitude, Longitude = obj.longitude, MetroCode = obj.metro_code, FK_City_Master_id = obj.fk_city_master_id });

                //}
                var shorturl_record = dc.SHORTURLDATAs.SingleOrDefault(x => x.PK_Shorturl == obj.pk_shorturl_id);
                if (shorturl_record != null)
                {
                    var        uaParser = Parser.GetDefault();
                    ClientInfo c        = uaParser.Parse(obj.userAgent);
                    if (c != null)
                    {
                        shorturl_record.DeviceName  = c.Device.Model;
                        shorturl_record.DeviceBrand = c.Device.Brand;
                        shorturl_record.OS_Name     = c.OS.Family;
                        shorturl_record.OS_Version  = c.OS.Major;
                    }
                    shorturl_record.City              = obj.City;
                    shorturl_record.Region            = obj.Region;
                    shorturl_record.Country           = obj.Country;
                    shorturl_record.CountryCode       = obj.CountryCode;
                    shorturl_record.PostalCode        = obj.PostalCode;
                    shorturl_record.City_Latitude     = obj.latitude;
                    shorturl_record.City_Longitude    = obj.longitude;
                    shorturl_record.MetroCode         = obj.metro_code;
                    shorturl_record.FK_City_Master_id = obj.fk_city_master_id;
                    dc.SaveChanges();
                }
            }
            catch (AggregateException e)
            {
            }
        }
Esempio n. 3
0
        public CountryCityModel GetDataFromfreegeoip(List_IP l)
        {
            string           jsonstring = ""; string url = "";
            CountryCityModel obj    = new CountryCityModel();
            WebClient        client = new WebClient();

            try
            {
                url        = "http://freegeoip.net/json/" + l.ipaddress;
                jsonstring = client.DownloadString(url);
                if (jsonstring != "")
                {
                    dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);

                    obj.City   = dynObj.city;
                    obj.Region = dynObj.region_name;
                    // obj.region_code = dynObj.region_code;
                    obj.Country     = dynObj.country_name;
                    obj.CountryCode = dynObj.country_code;
                    obj.PostalCode  = dynObj.zip_code;
                    // obj.time_zone = dynObj.time_zone;
                    obj.latitude   = dynObj.latitude;
                    obj.longitude  = dynObj.longitude;
                    obj.metro_code = dynObj.metro_code;
                    //obj.accuracy_radius = "";
                }
                obj.pk_shorturl_id = l.pk_shorturl_id;
                obj.userAgent      = l.userAgent;
                //var res=  dc.SHORTURLDATAs.Where(x => x.PK_Shorturl == l.pk_shorturl_id).SingleOrDefault();

                //      res.City = obj.City;
                //      res.Region = obj.Region;
                //      res.Country = obj.Country;
                //      res.CountryCode = obj.CountryCode;
                //      res.PostalCode = obj.PostalCode;
                //      res.Latitude = obj.latitude;
                //      res.Longitude = obj.longitude;
                //      res.MetroCode = obj.metro_code;
                //      dc.SaveChanges();
                // UpdateCityCountry(obj);
                freeGeoipData objf = dc.freeGeoipDatas.SingleOrDefault(x => x.Ipv4 == l.ipaddress);
                if (objf == null)
                {
                    freeGeoipData f = new freeGeoipData();
                    f.Ipv4        = l.ipaddress;
                    f.ip_num      = l.ipnum;
                    f.City        = obj.City;
                    f.Region      = obj.Region;
                    f.Country     = obj.Country;
                    f.CountryCode = obj.CountryCode;
                    f.PostalCode  = obj.PostalCode;
                    f.Latitude    = obj.latitude;
                    f.Longitude   = obj.longitude;
                    f.MetroCode   = obj.metro_code;
                    dc.freeGeoipDatas.Add(f);
                    dc.SaveChanges();
                }
                return(obj);
            }
            catch (Exception ex)
            {
                url        = "http://geoip.nekudo.com/api/" + l.ipaddress;
                jsonstring = client.DownloadString(url);
                if (jsonstring != "")
                {
                    dynamic dynObj = JsonConvert.DeserializeObject(jsonstring);

                    obj.City   = dynObj.city;
                    obj.Region = dynObj.region_name;
                    // obj.region_code = dynObj.region_code;
                    obj.Country     = dynObj.country_name;
                    obj.CountryCode = dynObj.country_code;
                    obj.PostalCode  = dynObj.zip_code;
                    // obj.time_zone = dynObj.time_zone;
                    obj.latitude   = dynObj.latitude;
                    obj.longitude  = dynObj.longitude;
                    obj.metro_code = dynObj.metro_code;
                    //obj.accuracy_radius = "";
                }
                obj.pk_shorturl_id = l.pk_shorturl_id;
                obj.userAgent      = l.userAgent;
                //UpdateCityCountry(obj);
                //var res = dc.SHORTURLDATAs.Where(x => x.PK_Shorturl == l.pk_shorturl_id).SingleOrDefault();

                //res.City = obj.City;
                //res.Region = obj.Region;
                //res.Country = obj.Country;
                //res.CountryCode = obj.CountryCode;
                //res.PostalCode = obj.PostalCode;
                //res.Latitude = obj.latitude;
                //res.Longitude = obj.longitude;
                //res.MetroCode = obj.metro_code;
                //dc.SaveChanges();
                freeGeoipData objf = dc.freeGeoipDatas.SingleOrDefault(x => x.Ipv4 == l.ipaddress);
                if (objf == null)
                {
                    freeGeoipData f = new freeGeoipData();
                    f.Ipv4        = l.ipaddress;
                    f.ip_num      = l.ipnum;
                    f.City        = obj.City;
                    f.Region      = obj.Region;
                    f.Country     = obj.Country;
                    f.CountryCode = obj.CountryCode;
                    f.PostalCode  = obj.PostalCode;
                    f.Latitude    = obj.latitude;
                    f.Longitude   = obj.longitude;
                    f.MetroCode   = obj.metro_code;
                    dc.freeGeoipDatas.Add(f);
                    dc.SaveChanges();
                }
                return(obj);
            }
        }