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" })); } }
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" })); } }