Esempio n. 1
0
        public async Task <ActionResult <string> > GetAsync(string ipAddress, [FromQuery] string serviceFilter)
        {
            IPAddress ipAddr;

            if (IPAddress.TryParse(ipAddress, out ipAddr))
            {
                JObject report = new JObject();

                if (String.IsNullOrWhiteSpace(serviceFilter) || serviceFilter.ToLowerInvariant().Contains("geoip"))
                {
                    ApiResult geoIpResults = await _geoIPClient.GetIPDetailsAsync(ipAddr);

                    if (geoIpResults.IsSuccessStatusCode)
                    {
                        JObject result = new JObject();
                        result.Add("statusCode", (int)geoIpResults.StatusCode);
                        result.Add("results", geoIpResults.Result);
                        report.Add("geoIp", result);
                    }
                    else
                    {
                        JObject error = new JObject();
                        error.Add("statusCode", (int)geoIpResults.StatusCode);
                        error.Add("errorMessage", geoIpResults.ErrorMessage);
                        report.Add("geoIp", error);
                    }
                }

                if (String.IsNullOrWhiteSpace(serviceFilter) || serviceFilter.ToLowerInvariant().Contains("rdap"))
                {
                    ApiResult rdapResults = await _rdapClient.GetIpDetailsAsync(ipAddr);

                    if (rdapResults.IsSuccessStatusCode)
                    {
                        JObject result = new JObject();
                        result.Add("statusCode", (int)rdapResults.StatusCode);
                        result.Add("results", rdapResults.Result);
                        report.Add("rdap", result);
                    }
                    else
                    {
                        JObject error = new JObject();
                        error.Add("statusCode", (int)rdapResults.StatusCode);
                        error.Add("errorMessage", rdapResults.ErrorMessage);
                        report.Add("rdap", error);
                    }
                }

                return(Ok(report));
            }
            else
            {
                return(BadRequest(new { message = "Error parsing IP Addess" }));
            }
        }
Esempio n. 2
0
        public async Task <ActionResult <string> > GetAsync(string domain, [FromQuery] string serviceFilter)
        {
            //TODO: BETTER DOMAIN NAME VALIDATION
            if (Uri.CheckHostName(domain) == UriHostNameType.Dns)
            {
                JObject report = new JObject();

                if (string.IsNullOrWhiteSpace(serviceFilter) || serviceFilter.ToLowerInvariant().Contains("geoip"))
                {
                    ApiResult geoIpResults = await _geoIPClient.GetIPDetailsAsync(domain);

                    if (geoIpResults.IsSuccessStatusCode)
                    {
                        JObject result = new JObject();
                        result.Add("statusCode", (int)geoIpResults.StatusCode);
                        result.Add("results", geoIpResults.Result);
                        report.Add("geoIp", result);
                    }
                    else
                    {
                        JObject error = new JObject();
                        error.Add("statusCode", (int)geoIpResults.StatusCode);
                        error.Add("errorMessage", geoIpResults.ErrorMessage);
                        report.Add("geoIp", error);
                    }
                }

                if (String.IsNullOrWhiteSpace(serviceFilter) || serviceFilter.ToLowerInvariant().Contains("rdap"))
                {
                    ApiResult rdapResults = await _rdapClient.GetIpDetailsAsync(domain);

                    if (rdapResults.IsSuccessStatusCode)
                    {
                        JObject result = new JObject();
                        result.Add("statusCode", (int)rdapResults.StatusCode);
                        result.Add("results", rdapResults.Result);
                        report.Add("rdap", result);
                    }
                    else
                    {
                        JObject error = new JObject();
                        error.Add("statusCode", (int)rdapResults.StatusCode);
                        error.Add("errorMessage", rdapResults.ErrorMessage);
                        report.Add("rdap", error);
                    }
                }

                return(Ok(report));
            }
            else
            {
                return(BadRequest(new { message = "Invalid domain" }));
            }
        }