Ejemplo n.º 1
0
        private async Task <IPDomainInfo> ReverseDns(string nameOrAddress)
        {
            IPAddress tempForParsing;

            if (IPAddress.TryParse(nameOrAddress, out tempForParsing))
            {
                return(await callExternalAPI("https://reverse-ip.whoisxmlapi.com/api/v1?apiKey=" + WHO_IS_API_KEY + "&ip=" + nameOrAddress, "ReverseDns"));
            }
            else
            {
                IPDomainInfo reverseDnsInfo = new IPDomainInfo();
                reverseDnsInfo.ServiceName = "ReverseDns";
                try
                {
                    IPHostEntry hostEntry = await Dns.GetHostEntryAsync(nameOrAddress);

                    var hostInfo = new { hostName = hostEntry.HostName.ToString() };

                    reverseDnsInfo.Result = JsonConvert.SerializeObject(hostInfo);
                    return(reverseDnsInfo);
                }
                catch (Exception e)
                {
                    reverseDnsInfo.Result = JsonConvert.SerializeObject(e);
                    return(reverseDnsInfo);
                }
            }
        }
Ejemplo n.º 2
0
        private async Task <IPDomainInfo> Ping(string nameOrAddress)
        {
            IPDomainInfo pingInfo = new IPDomainInfo();

            pingInfo.ServiceName = "Ping";
            try
            {
                Ping      ping = new Ping();
                PingReply pingReply;

                IPAddress tempForParsing;
                if (IPAddress.TryParse(nameOrAddress, out tempForParsing))
                {
                    pingReply = await ping.SendPingAsync(tempForParsing);
                }
                else
                {
                    pingReply = await ping.SendPingAsync(nameOrAddress);
                }

                var pingReplyInfo = new { status = pingReply.Status.ToString(), roundTripTime = pingReply.RoundtripTime + "ms" };
                pingInfo.Result = JsonConvert.SerializeObject(pingReplyInfo);
                return(pingInfo);
            }
            catch (Exception e)
            {
                pingInfo.Result = JsonConvert.SerializeObject(e);
                return(pingInfo);
            }
        }
Ejemplo n.º 3
0
        private async Task <IPDomainInfo> IsDomainAvailable(string nameOrAddress)
        {
            IPAddress    tempForParsing;
            IPDomainInfo info = new IPDomainInfo();

            if (IPAddress.TryParse(nameOrAddress, out tempForParsing))
            {
                info.ServiceName = "IsDomainAvailable";
                info.Result      = "{\"Error\":\"Domain availability only works when passing in a domain\"}";
                return(info);
            }
            else if (nameOrAddress.Contains(".com"))
            {
                info = await callExternalAPI(RDAP_DOT_COM + nameOrAddress, "IsDomainAvailable");

                if (info.Result.Contains("404"))
                {
                    info.Result = "true";
                }
                else
                {
                    info.Result = "false";
                }
                return(info);
            }
            else if (nameOrAddress.Contains(".net"))
            {
                info = await callExternalAPI(RDAP_DOT_NET + nameOrAddress, "IsDomainAvailable");

                if (info.Result.Contains("404"))
                {
                    info.Result = "true";
                }
                else
                {
                    info.Result = "false";
                }
                return(info);
            }
            else
            {
                info = await callExternalAPI(RDAP_DOT_ORG + nameOrAddress, "IsDomainAvailable");

                if (info.Result.Contains("404"))
                {
                    info.Result = "true";
                }
                else
                {
                    info.Result = "false";
                }
                return(info);
            }
        }
Ejemplo n.º 4
0
        private static async Task <IPDomainInfo> callExternalAPI(string url, string serviceName)
        {
            IPDomainInfo info = new IPDomainInfo();

            info.ServiceName = serviceName;
            try
            {
                HttpResponseMessage response = await client.GetAsync(url);

                response.EnsureSuccessStatusCode();
                info.Result = await response.Content.ReadAsStringAsync();

                return(info);
            }
            catch (HttpRequestException e)
            {
                info.Result = JsonConvert.SerializeObject(e);
                return(info);
            }
        }