Ejemplo n.º 1
0
        public async Task <ActionResult <PingData> > Get(string host)
        {
            var validatedIp = NetUtils.GetIpAddress(host);

            if (validatedIp == null)
            {
                var msg = "Invalid host or host could not be reached";
                _logger.LogError(msg);
                return(BadRequest(msg));
            }

            var ipAddress = validatedIp.ToString();
            var client    = _clientFactory.CreateClient();

            var viewDnsRepository = new ViewDnsRepository(client);

            _logger.LogDebug("Getting Ping data...");
            var pingData = await viewDnsRepository.GetPingData(ipAddress);

            _logger.LogDebug("Ping data result: {1}", pingData);

            var output = new PingData
            {
                Host    = pingData.Query["host"],
                Replies = new List <PingData.ReplyData>()
            };

            foreach (var reply in pingData.Response.Replies)
            {
                output.Replies.Add(new PingData.ReplyData("rtt", reply.Rtt));
            }

            return(Ok(output));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult <PortData> > Get(string host)
        {
            var validatedIp = NetUtils.GetIpAddress(host);

            if (validatedIp == null)
            {
                var msg = "Invalid host or host could not be reached";
                _logger.LogError(msg);
                return(BadRequest(msg));
            }

            var ipAddress = validatedIp.ToString();
            var client    = _clientFactory.CreateClient();

            var viewDnsRepository = new ViewDnsRepository(client);

            _logger.LogDebug("Getting Port data...");
            var portData = await viewDnsRepository.GetPortStatusData(ipAddress);

            _logger.LogDebug("Port data result: {1}", portData);

            var output = new PortData
            {
                Host  = portData.Query["host"],
                Ports = new List <PortData.StatusData>()
            };

            foreach (var status in portData.Response.Port)
            {
                output.Ports.Add(new PortData.StatusData(Convert.ToInt32(status.Number), status.Service,
                                                         status.Status));
            }

            return(Ok(output));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult <ReverseDnsData> > Get(string host)
        {
            var validatedIp = NetUtils.GetIpAddress(host);

            if (validatedIp == null)
            {
                var msg = "Invalid host or host could not be reached";
                _logger.LogError(msg);
                return(BadRequest(msg));
            }

            var ipAddress = validatedIp.ToString();
            var client    = _clientFactory.CreateClient();

            var viewDnsRepository = new ViewDnsRepository(client);

            _logger.LogDebug("Getting Reverse DNS data...");
            var reverseDnsData = await viewDnsRepository.GetReverseDnsData(ipAddress);

            _logger.LogDebug("Reverse DNS data result: {1}", reverseDnsData);

            var output = new ReverseDnsData
            {
                Host = reverseDnsData.Query["ip"],
                Rdns = reverseDnsData.Response["rdns"]
            };

            return(Ok(output));
        }