public static string Iso3166TwoLetterCode(this IPAddress ipAddress)
        {
            IPv4Data data = GetIPv4Data(ipAddress);

            if (data != null)
            {
                return(data.Iso3166TwoLetterCode);
            }
            return(null);
        }
        public static string Country(this IPAddress ipAddress)
        {
            IPv4Data data = GetIPv4Data(ipAddress);

            if (data != null)
            {
                return(data.Country);
            }
            return(null);
        }
        public static DateTimeOffset?AssignedDateTime(this IPAddress ipAddress)
        {
            IPv4Data data = GetIPv4Data(ipAddress);

            if (data == null)
            {
                return(null);
            }
            DateTimeOffset offset = new DateTimeOffset(0x7b2, 1, 1, 0, 0, 0, 0, new TimeSpan(0, 0, 0));

            return(new DateTimeOffset?(offset.AddSeconds((double)data.Assigned)));
        }
        private static IList <IPv4Data> ReadInCSVFile()
        {
            IList <IPv4Data> list = null;

            //string[] aa = Assembly.GetExecutingAssembly().GetManifestResourceNames();
            //SageFrame.IPAddressToCountryResolver.data.csv.gz
            //using (GZipStream stream = new GZipStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("SageFrame.IPAddressToCountryResolver.WorldDomination.Net.Data.csv.gz"), CompressionMode.Decompress))
            using (GZipStream stream = new GZipStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("SageFrame.IPAddressToCountryResolver.data.csv.gz"), CompressionMode.Decompress))
            {
                using (TextReader reader = new StreamReader(stream))
                {
                    string str;
                    while ((str = reader.ReadLine()) != null)
                    {
                        if (!string.IsNullOrEmpty(str) && !str.StartsWith("#", StringComparison.OrdinalIgnoreCase))
                        {
                            long     num;
                            long     num2;
                            long     num3;
                            string[] strArray = str.Replace("\"", string.Empty).Split(new char[] { ',' });
                            if ((((strArray != null) && (strArray.Length == 7)) && (long.TryParse(strArray[0], out num) && long.TryParse(strArray[1], out num2))) && long.TryParse(strArray[3], out num3))
                            {
                                if (list == null)
                                {
                                    list = new List <IPv4Data>();
                                }
                                IPv4Data item = new IPv4Data();
                                item.IpFrom                 = num;
                                item.IpTo                   = num2;
                                item.Registry               = strArray[2];
                                item.Assigned               = num3;
                                item.Iso3166TwoLetterCode   = strArray[4];
                                item.Iso3166ThreeLetterCode = strArray[5];
                                item.Country                = strArray[6];
                                list.Add(item);
                            }
                        }
                    }
                }
            }
            if ((list != null) && (list.Count > 0))
            {
                return(list);
            }
            return(null);
        }
 /// <summary>
 /// Return list of IPv4 URL information read from csv package. 
 /// </summary>
 /// <returns>List of IPv4 URL information </returns>
 private static IList<IPv4Data> ReadInCSVFile()
 {
     IList<IPv4Data> list = null;
     //string[] aa = Assembly.GetExecutingAssembly().GetManifestResourceNames();
     //SageFrame.IPAddressToCountryResolver.data.csv.gz
     //using (GZipStream stream = new GZipStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("SageFrame.IPAddressToCountryResolver.WorldDomination.Net.Data.csv.gz"), CompressionMode.Decompress))
     using (GZipStream stream = new GZipStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("SageFrame.IPAddressToCountryResolver.data.csv.gz"), CompressionMode.Decompress))
     {
         using (TextReader reader = new StreamReader(stream))
         {
             string str;
             while ((str = reader.ReadLine()) != null)
             {
                 if (!string.IsNullOrEmpty(str) && !str.StartsWith("#", StringComparison.OrdinalIgnoreCase))
                 {
                     long num;
                     long num2;
                     long num3;
                     string[] strArray = str.Replace("\"", string.Empty).Split(new char[] { ',' });
                     if ((((strArray != null) && (strArray.Length == 7)) && (long.TryParse(strArray[0], out num) && long.TryParse(strArray[1], out num2))) && long.TryParse(strArray[3], out num3))
                     {
                         if (list == null)
                         {
                             list = new List<IPv4Data>();
                         }
                         IPv4Data item = new IPv4Data();
                         item.IpFrom = num;
                         item.IpTo = num2;
                         item.Registry = strArray[2];
                         item.Assigned = num3;
                         item.Iso3166TwoLetterCode = strArray[4];
                         item.Iso3166ThreeLetterCode = strArray[5];
                         item.Country = strArray[6];
                         list.Add(item);
                     }
                 }
             }
         }
     }
     if ((list != null) && (list.Count > 0))
     {
         return list;
     }
     return null;
 }