예제 #1
0
        public async Task <NetworkDnsQueryLookup> DnsChilkatLookup(string target)
        {
            NetworkDnsQueryLookup lookup = new NetworkDnsQueryLookup();

            try
            {
                lookup = await this._dnsLookupService.DnsChilkatLookup(target);
            }
            catch (Exception ex)
            {
                lookup.Message    = ex.Message;
                lookup.StackTrace = ex.StackTrace;
            }

            return(lookup);
        }
        public void Test_NetworkService_DnsChilkatLookup()
        {
            string target = "google.com";

            DnsLookupService service = new DnsLookupService();

            NetworkDnsQueryLookup lookup = Task.Run(async() =>
            {
                return(await service.DnsChilkatLookup(target));
            })
                                           .GetAwaiter()
                                           .GetResult();

            Assert.IsNotNull(lookup);
            Assert.IsFalse(string.IsNullOrEmpty(lookup.IpAddress));
            Assert.IsTrue(string.IsNullOrEmpty(lookup.Message));
            Assert.IsTrue(string.IsNullOrEmpty(lookup.StackTrace));
        }
        /// <summary>
        /// https://www.example-code.com/dotnet-core/dnsLookup.asp
        /// </summary>
        /// <param name="target"></param>
        /// <returns></returns>
        public async Task <NetworkDnsQueryLookup> DnsChilkatLookup(string target)
        {
            Chilkat.Socket socket = new Chilkat.Socket();
            socket.UnlockComponent("unlock_code");

            int milliseconds = 10000;

            var address = await Task.Run(() => { return(socket.DnsLookup(target, milliseconds)); });

            var networkDnsQueryLookup = new NetworkDnsQueryLookup
            {
                IpAddress = address,
            };

            Debug.Assert(!string.IsNullOrEmpty(networkDnsQueryLookup.IpAddress), "IP Address empty? Why?");

            if (!socket.LastMethodSuccess)
            {
                Debug.WriteLine(socket.LastErrorText);
                return(default);