/// <summary> /// Initializes a new instance of the <see cref="DownloadSecondaryServerVisitor"/> class. /// </summary> /// <param name="encoding">The encoding used to read and write strings.</param> public DownloadSecondaryServerVisitor(Encoding encoding) { // You should use an IoC container to do this. TcpReaderFactory = new TcpReaderFactory(); CurrentEncoding = encoding; }
/// <summary> /// Queries the WHOIS server with the given TLD. /// </summary> /// <param name="tld">The TLD.</param> /// <returns></returns> private string GetWhoisServerResponse(string tld) { using (var tcpReader = TcpReaderFactory.Create()) { return(tcpReader.Read("whois.iana.org", 43, tld.ToUpper())); } }
public void TestLookupNotFound() { var response = reader.Read("whois.iana.org", "tld", "not_assigned.txt"); TcpReaderFactory.Bind(() => new FakeTcpReader(response)); var result = lookup.Lookup("test.be"); Assert.IsNotNull(result); Assert.AreEqual("eh", result.Tld); Assert.AreEqual(WhoisServerStatus.NotFound, result.Status); }
public void TestLookupCom() { var response = reader.Read("whois.iana.org", "tld", "com.txt"); TcpReaderFactory.Bind(() => new FakeTcpReader(response)); var result = lookup.Lookup("test.com"); Assert.IsNotNull(result); Assert.AreEqual(3, result.AdminContact.Address.Count); Assert.AreEqual("12061 Bluemont Way", result.AdminContact.Address[0]); Assert.AreEqual("Reston Virginia 20190", result.AdminContact.Address[1]); Assert.AreEqual("United States", result.AdminContact.Address[2]); Assert.AreEqual("*****@*****.**", result.AdminContact.Email); Assert.AreEqual("+1 703 948 3978", result.AdminContact.FaxNumber); Assert.AreEqual("Registry Customer Service", result.AdminContact.Name); Assert.AreEqual("VeriSign Global Registry Services", result.AdminContact.Organization); Assert.AreEqual("+1 703 925-6999", result.AdminContact.TelephoneNumber); Assert.AreEqual(new DateTime(2012, 2, 15), result.Changed); Assert.AreEqual(new DateTime(1985, 1, 1), result.Created); Assert.AreEqual(13, result.NameServers.Count); Assert.AreEqual("A.GTLD-SERVERS.NET 192.5.6.30 2001:503:a83e:0:0:0:2:30", result.NameServers[0]); Assert.AreEqual("B.GTLD-SERVERS.NET 192.33.14.30 2001:503:231d:0:0:0:2:30", result.NameServers[1]); Assert.AreEqual("C.GTLD-SERVERS.NET 192.26.92.30", result.NameServers[2]); Assert.AreEqual("D.GTLD-SERVERS.NET 192.31.80.30", result.NameServers[3]); Assert.AreEqual("E.GTLD-SERVERS.NET 192.12.94.30", result.NameServers[4]); Assert.AreEqual("F.GTLD-SERVERS.NET 192.35.51.30", result.NameServers[5]); Assert.AreEqual("G.GTLD-SERVERS.NET 192.42.93.30", result.NameServers[6]); Assert.AreEqual("H.GTLD-SERVERS.NET 192.54.112.30", result.NameServers[7]); Assert.AreEqual("I.GTLD-SERVERS.NET 192.43.172.30", result.NameServers[8]); Assert.AreEqual("J.GTLD-SERVERS.NET 192.48.79.30", result.NameServers[9]); Assert.AreEqual("K.GTLD-SERVERS.NET 192.52.178.30", result.NameServers[10]); Assert.AreEqual("L.GTLD-SERVERS.NET 192.41.162.30", result.NameServers[11]); Assert.AreEqual("M.GTLD-SERVERS.NET 192.55.83.30", result.NameServers[12]); Assert.AreEqual(3, result.Organization.Address.Count); Assert.AreEqual("12061 Bluemont Way", result.Organization.Address[0]); Assert.AreEqual("Reston Virginia 20190", result.Organization.Address[1]); Assert.AreEqual("United States", result.Organization.Address[2]); Assert.AreEqual("VeriSign Global Registry Services", result.Organization.Name); Assert.AreEqual("Registration information: http://www.verisign-grs.com", result.Remarks); Assert.AreEqual("com", result.Tld); Assert.AreEqual(3, result.TechContact.Address.Count); Assert.AreEqual("12061 Bluemont Way", result.TechContact.Address[0]); Assert.AreEqual("Reston Virginia 20190", result.TechContact.Address[1]); Assert.AreEqual("United States", result.TechContact.Address[2]); Assert.AreEqual("*****@*****.**", result.TechContact.Email); Assert.AreEqual("+1 703 948 3978", result.TechContact.FaxNumber); Assert.AreEqual("Registry Customer Service", result.TechContact.Name); Assert.AreEqual("VeriSign Global Registry Services", result.TechContact.Organization); Assert.AreEqual("+1 703 925-6999", result.TechContact.TelephoneNumber); Assert.AreEqual("whois.verisign-grs.com", result.Url); }
private async Task <string> GetWhoisServerResponse(string tld) { string response; Log.Debug("Looking up Root TLD server for {0} from {1}", tld, IanaUrl); using (var tcpReader = TcpReaderFactory.Create()) { response = await tcpReader.Read(IanaUrl, 43, tld.ToUpper(), Encoding.UTF8); } Log.Debug("Received {0:###,###,##0} byte(s).", response.Length); return(response); }
public async Task TestRedirectedWhoisData() { TcpReaderFactory.Bind(() => new FakeTcpReader("Redirected WHOIS Data")); var record = new WhoisResponse(File.ReadAllText(@"..\..\..\Samples\Redirects\MarkMonitor.txt")); var state = new LookupState { Response = record, Options = WhoisOptions.Defaults, Domain = "example.com" }; var result = await visitor.Visit(state); Assert.AreEqual("Redirected WHOIS Data", result.Response.Content); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { WhoisRedirect redirect; if (IsARedirectRecord(record, out redirect)) { record.Redirect = redirect; using (var tcpReader = TcpReaderFactory.Create(Encoding)) { record.Text = tcpReader.Read(redirect.Url, 43, record.Domain); } } return(record); }
public async Task <LookupState> Visit(LookupState state) { using (var tcpReader = TcpReaderFactory.Create()) { var response = await tcpReader.Read(state.WhoisServer.Url, 43, state.Domain, state.Options.DefaultEncoding); state.Response = new WhoisResponse { Domain = state.Domain, Content = response }; } Log.Debug("Lookup {0}: Downloaded {1:###,###,##0} byte(s) from {2}.", state.Domain, state.Response.Content.Length, state.WhoisServer.Url); return(state); }
public void TestDownloadWhoisResults() { TcpReaderFactory.Bind(() => new FakeTcpReader("WHOIS Data")); var server = new WhoisServer("uk", "whois.com"); var lookup = new LookupState { WhoisServer = server, Domain = "flipbit.co.uk", Options = WhoisOptions.Defaults }; visitor.Visit(lookup); Assert.AreEqual("WHOIS Data", lookup.Response.Content); }
public void TestLookupBe() { var response = reader.Read("whois.iana.org", "tld", "be.txt"); TcpReaderFactory.Bind(() => new FakeTcpReader(response)); var result = lookup.Lookup("test.be"); Assert.IsNotNull(result); Assert.AreEqual(3, result.AdminContact.Address.Count); Assert.AreEqual("Ubicenter, Philipssite 5, bus 13", result.AdminContact.Address[0]); Assert.AreEqual("Leuven 3001", result.AdminContact.Address[1]); Assert.AreEqual("Belgium", result.AdminContact.Address[2]); Assert.AreEqual("*****@*****.**", result.AdminContact.Email); Assert.AreEqual("+32 16 28 49 71", result.AdminContact.FaxNumber); Assert.AreEqual("Philip Du Bois", result.AdminContact.Name); Assert.AreEqual("DNS Belgium vzw/asbl", result.AdminContact.Organization); Assert.AreEqual("+32 16 28 49 70", result.AdminContact.TelephoneNumber); Assert.AreEqual(new DateTime(2014, 7, 30), result.Changed); Assert.AreEqual(new DateTime(1988, 8, 5), result.Created); Assert.AreEqual(6, result.NameServers.Count); Assert.AreEqual("A.NS.DNS.BE 194.0.6.1 2001:678:9:0:0:0:0:1", result.NameServers[0]); Assert.AreEqual("B.NS.DNS.BE 194.0.37.1 2001:678:64:0:0:0:0:1", result.NameServers[1]); Assert.AreEqual("C.NS.DNS.BE 194.0.43.1 2001:678:68:0:0:0:0:1", result.NameServers[2]); Assert.AreEqual("D.NS.DNS.BE 194.0.44.1 2001:678:6c:0:0:0:0:1", result.NameServers[3]); Assert.AreEqual("X.NS.DNS.BE 194.0.1.10 2001:678:4:0:0:0:0:a", result.NameServers[4]); Assert.AreEqual("Y.NS.DNS.BE 120.29.253.8 2001:dcd:7:0:0:0:0:8", result.NameServers[5]); Assert.AreEqual(3, result.Organization.Address.Count); Assert.AreEqual("Ubicenter, Philipssite 5, bus 13", result.Organization.Address[0]); Assert.AreEqual("Leuven 3001", result.Organization.Address[1]); Assert.AreEqual("Belgium", result.Organization.Address[2]); Assert.AreEqual("DNS Belgium vzw/asbl", result.Organization.Name); Assert.AreEqual("Registration information: http://www.dns.be", result.Remarks); Assert.AreEqual("be", result.Tld); Assert.AreEqual(3, result.TechContact.Address.Count); Assert.AreEqual("Ubicenter, Philipssite 5, bus 13", result.TechContact.Address[0]); Assert.AreEqual("Leuven 3001", result.TechContact.Address[1]); Assert.AreEqual("Belgium", result.TechContact.Address[2]); Assert.AreEqual("*****@*****.**", result.TechContact.Email); Assert.AreEqual("+32 16 28 49 71", result.TechContact.FaxNumber); Assert.AreEqual("David Goelen", result.TechContact.Name); Assert.AreEqual("DNS Belgium vzw/asbl", result.TechContact.Organization); Assert.AreEqual("+32 16 28 49 70", result.TechContact.TelephoneNumber); Assert.AreEqual("whois.dns.be", result.Url); }
public async Task <LookupState> Visit(LookupState state) { if (IsARedirectRecord(state.Response, out var redirect)) { using (var tcpReader = TcpReaderFactory.Create()) { var response = await tcpReader.Read(redirect.Url, 43, state.Domain, state.Options.DefaultEncoding); Log.Debug("Lookup {0}: Downloaded {1:###,###,##0} byte(s) from {2}.", state.Domain, response.Length, redirect.Url); state.Response = new WhoisResponse { Domain = state.Domain, Content = response }; } } return(state); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { var referralIndex = record.Text.IndexOfLineEndingWith(": " + record.Domain); if (referralIndex > -1) { var whoIsServer = record.Text.Containing("whois", referralIndex); whoIsServer = whoIsServer.SubstringAfterChar(":").Trim(); if (!string.IsNullOrEmpty(whoIsServer)) { using (var tcpReader = TcpReaderFactory.Create(CurrentEncoding)) { record.Text = tcpReader.Read(whoIsServer, 43, record.Domain); } } } return(record); }
/// <summary> /// Initializes a new instance of the <see cref="DownloadVisitor"/> class. /// </summary> /// <param name="encoding">The encoding used to read and write strings.</param> public DownloadVisitor(Encoding encoding) { TcpReaderFactory = new TcpReaderFactory(); Encoding = encoding; }
/// <summary> /// Initializes a new instance of the <see cref="ExpandResultsVisitor"/> class. /// </summary> public ExpandResultsVisitor() { // You should use an IoC container to do this. TcpReaderFactory = new TcpReaderFactory(); }
/// <summary> /// Initializes a new instance of the <see cref="RedirectVisitor"/> class. /// </summary> /// <param name="encoding">The encoding used to read and write strings.</param> public RedirectVisitor(Encoding encoding) { TcpReaderFactory = new TcpReaderFactory(); Encoding = encoding; }
/// <summary> /// Initializes a new instance of the <see cref="DownloadSecondaryServerVisitor"/> class. /// </summary> public DownloadSecondaryServerVisitor() { // You should use an IoC container to do this. TcpReaderFactory = new TcpReaderFactory(); }
/// <summary> /// Initializes a new instance of the <see cref="InternicServerLookup"/> class. /// </summary> public IanaServerLookup() { TcpReaderFactory = new TcpReaderFactory(); }