Esempio n. 1
0
        public IpAddressDetails GetIpAddressDetails(string ipAddress, [Optional] LanguageOpition language, [Optional] params FieldOption[] fields)
        {
            var request = new RestRequest();

            request.AddParameter("IpAddress", ipAddress, ParameterType.UrlSegment);
            request.Resource = "json/{IpAddress}";
            // Add optional parameters
            if (fields != null && fields.Length > 0)
            {
                string fieldsString = "";
                foreach (var item in fields)
                {
                    fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription();
                }
                if (!fieldsString.Contains(FieldOption.Status.GetDescription()))
                {
                    fieldsString += "," + FieldOption.Status.GetDescription();
                }
                request.AddParameter("fields", fieldsString);
            }
            else if (_fields != null && _fields.Length > 0)
            {
                string fieldsString = "";
                foreach (var item in _fields)
                {
                    fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription();
                }
                if (!fieldsString.Contains(FieldOption.Status.GetDescription()))
                {
                    fieldsString += "," + FieldOption.Status.GetDescription();
                }
                request.AddParameter("fields", fieldsString);
            }

            if (language != LanguageOpition.English)
            {
                request.AddParameter("lang", language.GetDescription());
            }
            else if (_languageOpition != LanguageOpition.English)
            {
                request.AddParameter("lang", _languageOpition.GetDescription());
            }

            return(Execute <IpAddressDetails>(request));
        }
Esempio n. 2
0
 public IpApiClient([Optional] bool https, [Optional] LanguageOpition languageOpition, [Optional] FieldOption[] fields)
 {
     _https           = https;
     _languageOpition = languageOpition;
     _fields          = fields;
 }
Esempio n. 3
0
        public List <IpAddressDetails> GetIpAddressDetails(List <string> ipAddresses, [Optional] LanguageOpition language, [Optional] params FieldOption[] fields)
        {
            if (ipAddresses.Count > 100)
            {
                const string message = "Error calling api. Total 100 IP Addressess allowed in a single batch.";
                throw new ApplicationException(message);
            }
            var request = new RestRequest();

            request.Method        = Method.POST;
            request.RequestFormat = DataFormat.Json;
            request.AddJsonBody(ipAddresses.ToArray());
            request.Resource = "batch";

            // Add optional parameters
            if (fields != null && fields.Length > 0)
            {
                string fieldsString = "";
                foreach (var item in fields)
                {
                    fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription();
                }
                if (!fieldsString.Contains(FieldOption.Status.GetDescription()))
                {
                    fieldsString += "," + FieldOption.Status.GetDescription();
                }
                request.AddParameter("fields", fieldsString);
            }
            else if (_fields != null && _fields.Length > 0)
            {
                string fieldsString = "";
                foreach (var item in _fields)
                {
                    fieldsString += ((fieldsString != "") ? "," : "") + item.GetDescription();
                }
                if (!fieldsString.Contains(FieldOption.Status.GetDescription()))
                {
                    fieldsString += "," + FieldOption.Status.GetDescription();
                }
                request.AddParameter("fields", fieldsString);
            }

            if (language != LanguageOpition.English)
            {
                request.AddParameter("lang", language.GetDescription());
            }
            else if (_languageOpition != LanguageOpition.English)
            {
                request.AddParameter("lang", _languageOpition.GetDescription());
            }
            return(Execute <List <IpAddressDetails> >(request));
        }