private void Download(WhoisRecord record, string domainSuffix = null) { using (var tcpReader = TcpReaderFactory.Create(Encoding)) { record.Text = tcpReader.Read(record.Server.Url, 43, record.Domain + domainSuffix); } }
public static WhoisRecord Translate(this WhoisRecord whoisRecord, string query, XmlDocument searchResult, XmlDocument orgResult, XmlDocument pocsSearchResult, List <XmlDocument> pocResults) { XmlElement netRef = searchResult["net"]; XmlElement orgRef = orgResult["org"]; whoisRecord = new WhoisRecord { DomainName = query, RegistryData = new RegistryData { CreatedDate = netRef.InnerText("registrationDate"), UpdatedDate = netRef.InnerText("updateDate"), RawText = null, Registrant = new Registrant { City = orgRef.InnerText("city"), StateProv = orgRef.InnerText("iso3166-2"), PostalCode = orgRef.InnerText("postalCode"), Country = orgRef["iso3166-1"].InnerText("code2"), Name = orgRef.InnerText("name"), Address = orgRef.InnerText("streetAddress") } }, }; whoisRecord.TranslateContacts(pocsSearchResult, pocResults); return(whoisRecord); }
/// <summary> /// Determines whether a WHOIS record is a redirect record to another WHOIS server. /// </summary> /// <param name="record">The record.</param> /// <param name="redirect">The redirect.</param> /// <returns></returns> public bool IsARedirectRecord(WhoisRecord record, out WhoisRedirect redirect) { var isARedirectRecord = false; redirect = null; if (record.Text.Contains("many different competing registrars")) { var reader = new EmbeddedPatternReader(); var pattern = reader.Read(GetType().Assembly, "Whois.Patterns.Redirects.Iana.txt"); var tokenizer = new Tokenizer(); var text = record.Text; var tokenResult = tokenizer.Parse <WhoisRedirect>(pattern, text); redirect = tokenResult.Value; isARedirectRecord = true; } return(isARedirectRecord); }
private void CheckForEnglishVersion(WhoisRecord record) { if (record.Text.Contains("add'/e'") && !record.Server.Url.EndsWith("/e")) { Download(record, "/e"); } }
public string GetCompanyName(string ip) { string username = "******"; string password = "******"; string domain = ip; string format = "XML"; string url = "http://www.whoisxmlapi.com/whoisserver/WhoisService?domainName=" + domain + "&username="******"&password="******"&outputFormat=" + format; var settings = new XmlReaderSettings(); var reader = XmlReader.Create(url, settings); WhoisRecord record = new WhoisRecord(); //Бесплатно можно сделать ограниченое число запросов на Whois сервер, //поэтому эта часть кода закомментирована. /*try * { * var serializer = new System.Xml.Serialization.XmlSerializer(typeof(WhoisRecord)); * record = (WhoisRecord)serializer.Deserialize(reader); * * reader.Close(); * * return record.administrativeContact.name; * } * catch * { * return "Default name"; * }*/ return("Default name"); }
public static WhoisRecord Translate(this WhoisRecord whoisRecord, string query, XmlDocument searchResult, XmlDocument orgResult, XmlDocument pocsSearchResult, List<XmlDocument> pocResults) { XmlElement netRef = searchResult["net"]; XmlElement orgRef = orgResult["org"]; whoisRecord = new WhoisRecord { DomainName = query, RegistryData = new RegistryData { CreatedDate = netRef.InnerText("registrationDate"), UpdatedDate = netRef.InnerText("updateDate"), RawText = null, Registrant = new Registrant { City = orgRef.InnerText("city"), StateProv = orgRef.InnerText("iso3166-2"), PostalCode = orgRef.InnerText("postalCode"), Country = orgRef["iso3166-1"].InnerText("code2"), Name = orgRef.InnerText("name"), Address = orgRef.InnerText("streetAddress") } }, }; whoisRecord.TranslateContacts(pocsSearchResult, pocResults); return whoisRecord; }
public void TestParseTopDomains() { var fails = new List<string>(); var files = Directory.GetFiles("..\\..\\Samples", "*.txt"); var visitor = new PatternExtractorVisitor(); foreach (var file in files) { var text = File.ReadAllText(file); var record = new WhoisRecord(text); var matches = visitor.MatchPatterns(record); if (matches[0].Replacements.Count == 0) { fails.Add(file); } else { Console.WriteLine("{0} replacement(s) made in {1}", matches[0].Replacements.Count, file); } } foreach (var fail in fails) { Console.WriteLine("No replacements made in: {0}", fail); } if (fails.Count > 0) { Assert.Fail("No replacements made for some files, check output!"); } }
public void TestParseTopDomains() { var fails = new List <string>(); var files = Directory.GetFiles("..\\..\\Samples", "*.txt"); var visitor = new PatternExtractorVisitor(); foreach (var file in files) { var text = File.ReadAllText(file); var record = new WhoisRecord(text); var matches = visitor.MatchPatterns(record); if (matches[0].Value.Replacements.Count == 0) { fails.Add(file); } else { Console.WriteLine("{0} replacement(s) made in {1}", matches[0].Value.Replacements.Count, file); } } foreach (var fail in fails) { Console.WriteLine("No replacements made in: {0}", fail); } if (fails.Count > 0) { Assert.Fail("No replacements made for some files, check output!"); } }
/// <summary> /// Get information on a particular domain /// </summary> /// <param name="record"></param> /// <returns></returns> public WhoisRecord FillRecord(WhoisRecord record) { record.Server = getServer(record).Server; var tcpClient = new TCPClient(); record.Text = tcpClient.Read(record.Server, 43, record.Domain); return record; }
/// <summary> /// Looks up the WHOIS infomration for the domain. /// </summary> /// <param name="domian">Domain Name</param> /// <returns></returns> public static WhoisRecord Lookup(string domian) { var rec = new WhoisRecord {Domain = domian}; var get = new GetWhois(); get.FillRecord(rec); return rec; }
public void TestParseRecord() { var sample = File.ReadAllText("..\\..\\Samples\\Domains\\adobe.com.txt"); var record = new WhoisRecord(sample); record = visitor.Visit(record); Assert.IsNotNull(record.Registrant); Assert.AreEqual("Domain Administrator", record.Registrant.Name); Assert.AreEqual("Adobe Systems Incorporated", record.Registrant.Organization); Assert.AreEqual("345 Park Avenue", record.Registrant.Street); Assert.AreEqual("San Jose", record.Registrant.City); Assert.AreEqual("CA", record.Registrant.State); Assert.AreEqual("95110", record.Registrant.PostalCode); Assert.AreEqual("US", record.Registrant.Country); Assert.AreEqual("+1.4085366000", record.Registrant.PhoneNumber); Assert.AreEqual("", record.Registrant.PhoneNumberExt); Assert.AreEqual("", record.Registrant.FaxNumber); Assert.AreEqual("", record.Registrant.FaxNumberExt); Assert.AreEqual("*****@*****.**", record.Registrant.Email); Assert.IsNotNull(record.AdminContact); Assert.AreEqual("DNS Admin", record.AdminContact.Name); Assert.AreEqual("Adobe Systems Incorporated", record.AdminContact.Organization); Assert.AreEqual("345 Park Avenue", record.AdminContact.Street); Assert.AreEqual("San Jose", record.AdminContact.City); Assert.AreEqual("CA", record.AdminContact.State); Assert.AreEqual("95110", record.AdminContact.PostalCode); Assert.AreEqual("US", record.AdminContact.Country); Assert.AreEqual("+1.4085366000", record.AdminContact.PhoneNumber); Assert.AreEqual("", record.AdminContact.PhoneNumberExt); Assert.AreEqual("", record.AdminContact.FaxNumber); Assert.AreEqual("", record.AdminContact.FaxNumberExt); Assert.AreEqual("*****@*****.**", record.AdminContact.Email); Assert.IsNotNull(record.TechnicalContact); Assert.AreEqual("DNS Tech", record.TechnicalContact.Name); Assert.AreEqual("Adobe Systems Incorporated", record.TechnicalContact.Organization); Assert.AreEqual("345 Park Avenue", record.TechnicalContact.Street); Assert.AreEqual("San Jose", record.TechnicalContact.City); Assert.AreEqual("CA", record.TechnicalContact.State); Assert.AreEqual("95110", record.TechnicalContact.PostalCode); Assert.AreEqual("US", record.TechnicalContact.Country); Assert.AreEqual("+1.4085366000", record.TechnicalContact.PhoneNumber); Assert.AreEqual("", record.TechnicalContact.PhoneNumberExt); Assert.AreEqual("", record.TechnicalContact.FaxNumber); Assert.AreEqual("", record.TechnicalContact.FaxNumberExt); Assert.AreEqual("*****@*****.**", record.TechnicalContact.Email); Assert.AreEqual(5, record.Nameservers.Count); Assert.AreEqual("adobe-dns-03.adobe.com", record.Nameservers[0]); Assert.AreEqual("adobe-dns-01.adobe.com", record.Nameservers[1]); Assert.AreEqual("adobe-dns-02.adobe.com", record.Nameservers[2]); Assert.AreEqual("adobe-dns-05.adobe.com", record.Nameservers[3]); Assert.AreEqual("adobe-dns-04.adobe.com", record.Nameservers[4]); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { using (var tcpReader = TcpReaderFactory.Create(CurrentEncoding)) { record.Text = tcpReader.Read(record.Server, 43, record.Domain); } return(record); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public override WhoisRecord Visit(WhoisRecord record) { var server = WhoisServerLookup.Lookup(record.Domain); // TODO: Validation on server record.Server = server; return(record); }
public void TestDownloadWhoisResults() { var record = new WhoisRecord { Domain = "flipbit.co.uk", Server = new WhoisServer("uk", "whois.com") }; factory.Reader = new FakeTcpReader("WHOIS Data"); visitor.Visit(record); Assert.AreEqual("WHOIS Data", record.Text); }
public void TestWhoisServerNameIsAssigned() { var record = new WhoisRecord { Domain = "example.com" }; Assert.IsNull(record.Server); record = visitor.Visit(record); Assert.AreEqual("test.whois.com", record.Server.Url); }
/// <summary> /// Lookups the WHOIS information for the specified <see cref="domain"/>. /// </summary> /// <param name="domain">The domain.</param> /// <returns></returns> public WhoisRecord Lookup(string domain) { var record = new WhoisRecord { Domain = domain }; foreach (var visitor in Visitors) { record = visitor.Visit(record); } return record; }
private void CheckForNewWhoIsServer(WhoisRecord record) { var lines = record.Text.ToLines().Select(l => l.Trim()); var line = lines.FirstOrDefault(l => l.StartsWith("Registrar WHOIS Server:", StringComparison.OrdinalIgnoreCase)); if (line != null) { var url = line.Remove(0, "Registrar WHOIS Server:".Length).Trim(); record.Server.Url = url; } }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { var results = MatchPatterns(record); if (results.Any()) { record = results.First().Value; } return(record); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { // Check to narrow down search results if (record.Text.Contains("=xxx")) { using (var tcpReader = TcpReaderFactory.Create(Encoding)) { record.Text = tcpReader.Read(record.Server.Url, 43, "=" + record.Domain); } } return(record); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { if (record.Server == null) { throw new ArgumentException("Given WhoisRecord does not have the Server property set"); } using (var tcpReader = TcpReaderFactory.Create(Encoding)) { record.Text = tcpReader.Read(record.Server.Url, 43, record.Domain); } return(record); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { if (record.Server == null) { throw new ArgumentException("Given WhoisRecord does not have the Server property set"); } using (var tcpReader = TcpReaderFactory.Create(Encoding)) { record.Text = tcpReader.Read(record.Server.Url, 43, record.Domain); } return record; }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public override WhoisRecord Visit(WhoisRecord record) { if (record.Registrant?.Name != null && record.Registrant?.Organization == null) { record.Registrant.Organization = record.Registrant?.Name; } if (record.Domain != null && record.Registrant?.Organization == null) { if (record.Registrant == null) { record.Registrant = new Contact(); } record.Registrant.Organization = record.Domain; } return(record); }
/// <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); }
private static void TranslateContacts(this WhoisRecord whoisRecord, XmlDocument pocsSearchResult, List <XmlDocument> pocResults) { XmlElement pocsRef = pocsSearchResult["pocs"]; var contactTable = new List <KeyValuePair <string, string> >(); foreach (XmlElement child in pocsRef.ChildNodes) { contactTable.Add(new KeyValuePair <string, string>(child.Attributes["description"].Value, child.Attributes["handle"].Value)); } foreach (XmlDocument document in pocResults) { XmlElement pocRef = document["poc"]; KeyValuePair <string, string> contactType = contactTable.Where(c => c.Value == pocRef.InnerText("handle")).FirstOrDefault(); Contact contact = new Contact().Translate(pocRef); switch (contactType.Key) { case "Abuse": whoisRecord.RegistryData.AbuseContact = contact; break; case "Admin": whoisRecord.RegistryData.AdministrativeContact = contact; break; case "Billing": whoisRecord.RegistryData.BillingContact = contact; break; case "Tech": whoisRecord.RegistryData.TechnicalContact = contact; break; case "Zone": whoisRecord.RegistryData.ZoneContact = contact; break; } contactTable.Remove(contactType); } }
public void ShouldVerifyWhoisClientWorksOnShaw() { var whoisClient = new WhoisClient("68.146.10.100"); Assert.IsNotNull(whoisClient); foreach (var item in whoisClient.Errors) { Console.WriteLine(item.Value); } Assert.IsTrue(whoisClient.Errors.Count == 0); WhoisRecord response = whoisClient.GetWhoisRecord(); Assert.AreEqual("CA", response.RegistryData.Registrant.Country); Assert.AreEqual("AB", response.RegistryData.Registrant.StateProv); Assert.AreEqual("Calgary", response.RegistryData.Registrant.City); Assert.IsTrue(response.RegistryData.Registrant.Name.ToLower().Contains("shaw")); }
public void VerifyWhoisResultIsTranslated() { var response = new WhoisRecord().Translate("68.146.10.100", TestHelper.SearchResult, TestHelper.ShawcResult, TestHelper.PocsResult, TestHelper.Pocs); Assert.IsNotNull(response); Assert.IsNotNull(response.DomainName); Assert.IsNotNull(response.RegistryData); Assert.AreEqual("CA", response.RegistryData.Registrant.Country); Assert.AreEqual("AB", response.RegistryData.Registrant.StateProv); Assert.AreEqual("Calgary", response.RegistryData.Registrant.City); Assert.AreEqual("Suite 800, 630 - 3rd Ave. SW", response.RegistryData.Registrant.Address); Assert.IsNotNull(response.RegistryData.AbuseContact); Assert.AreEqual("+1-403-750-7420", response.RegistryData.AbuseContact.Phone); Assert.AreEqual("*****@*****.**", response.RegistryData.AbuseContact.Email); Assert.AreEqual("SHAW ABUSE", response.RegistryData.AbuseContact.Name); Assert.IsNotNull(response.RegistryData.AdministrativeContact); Assert.IsNotNull(response.RegistryData.TechnicalContact); }
public IList<TokenResult<WhoisRecord>> MatchPatterns(WhoisRecord record) { var results = new List<TokenResult<WhoisRecord>>(); var patterns = GetEmbeddedPatterns(); foreach (var pattern in patterns) { var tokenizer = new Tokenizer(); var clone = record.Clone() as WhoisRecord; var result = tokenizer.Parse(clone, pattern, record.Text); results.Add(result); } return results.OrderBy(r => r.Replacements.Count).ToList(); }
public IList <TokenResult <WhoisRecord> > MatchPatterns(WhoisRecord record) { var results = new List <TokenResult <WhoisRecord> >(); var patterns = GetEmbeddedPatterns(); foreach (var pattern in patterns) { var tokenizer = new Tokenizer(); var clone = record.Clone() as WhoisRecord; var result = tokenizer.Parse(clone, pattern, record.Text); results.Add(result); } return(results.OrderBy(r => r.Replacements.Count).ToList()); }
public void TestIsARedirectWhenTrue() { var record = new WhoisRecord(File.ReadAllText(@"..\..\Samples\Domains\sphinn.com.txt")); WhoisRedirect redirect; var result = visitor.IsARedirectRecord(record, out redirect); Assert.IsTrue(result); Assert.IsNotNull(redirect); Assert.AreEqual(new DateTime(2007, 4, 25), redirect.CreatedDate); Assert.AreEqual("sphinn.com", redirect.Domain); Assert.AreEqual(new DateTime(2015, 4, 25), redirect.ExpirationDate); Assert.AreEqual(new DateTime(2014, 4, 25), redirect.ModifiedDate); Assert.AreEqual("NS1.TIGERTECH.NET", redirect.Nameservers[0]); Assert.AreEqual("NS2.TIGERTECH.BIZ", redirect.Nameservers[1]); Assert.AreEqual("NS3.TIGERTECH.ORG", redirect.Nameservers[2]); Assert.AreEqual("http://www.tigertech.net", redirect.ReferralUrl); Assert.AreEqual("TIGER TECHNOLOGIES LLC", redirect.Registrar); Assert.AreEqual("whois.tigertech.net", redirect.Url); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { var referralIndex = record.Text.IndexOfLineContaining("created: "); if (referralIndex > -1) { var registationString = record.Text.Containing("created: ", referralIndex); registationString = registationString.SubstringAfterChar(":").SubstringBeforeChar("#").Trim(); DateTime registrationDate; if (DateTime.TryParseExact(registationString, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out registrationDate)) { record.Created = registrationDate; } } return(record); //created: }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { var referralIndex = record.Text.IndexOfLineContaining("Created on"); if (referralIndex > -1) { var registationString = record.Text.Containing("Created on", referralIndex); registationString = registationString.SubstringAfterChar(":").Trim(); DateTime registrationDate; if (DateTime.TryParse(registationString, out registrationDate)) { record.Created = registrationDate; } } return(record); }
public IList <TokenizerResult> MatchPatterns(WhoisRecord record) { var results = new List <TokenizerResult>(); var patterns = GetEmbeddedPatterns(); foreach (var pattern in patterns) { var tokenizer = new Tokenizer(); var clone = record.Clone() as WhoisRecord; var result = tokenizer.Parse(clone, pattern.Value, record.Text); results.Add(new TokenizerResult { Name = pattern.Name, Value = result }); } return(results.OrderByDescending(r => r.Value.Replacements.Count).ToList()); }
/// <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> /// Get basic WHOIS info /// </summary> /// <param name="domain"></param> /// <returns></returns> public WhoisRecord GetWhoisInfo(string domain) { //validate domain before making whois Query try { domain = Cleanse(domain); } catch (Exception) { throw; } var record = new WhoisRecord(); var whoisResult = new WhoisLookup().Lookup(domain); var records = whoisResult.ParsedResponse; record.Raw = whoisResult.Content; record.Domain = domain; // try to populate whois record, try { record.Created = records.Registered; record.Expired = records.Expiration; record.DomainStatus = records.DomainStatus; record.Nameservers = records.NameServers; record.Registrant.Email = records.Registrant.Email; record.Admin.Email = records.AdminContact.Email; } catch (Exception) { return(record); } return(record); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public override WhoisRecord Visit(WhoisRecord record) { if (record.Server == null) { throw new ArgumentException("Given WhoisRecord does not have the Server property set"); } string url; do { url = record.Server.Url; if (url == null) { return(record); } Download(record); CheckForEnglishVersion(record); CheckForNewWhoIsServer(record); } while (url != record.Server.Url); return(record); }
/// <summary> /// Determines whether a WHOIS record is a redirect record to another WHOIS server. /// </summary> /// <param name="record">The record.</param> /// <param name="redirect">The redirect.</param> /// <returns></returns> public bool IsARedirectRecord(WhoisRecord record, out WhoisRedirect redirect) { var isARedirectRecord = false; redirect = null; if (record.Text.Contains("many different competing registrars")) { var reader = new EmbeddedPatternReader(); var pattern = reader.Read(GetType().Assembly, "Whois.Patterns.Redirects.Iana.txt"); var tokenizer = new Tokenizer(); var text = record.Text; var tokenResult = tokenizer.Parse<WhoisRedirect>(pattern, text); redirect = tokenResult.Value; isARedirectRecord = true; } return isARedirectRecord; }
static void Main(string[] args) { ////////////////////////// // Fill in your details // ////////////////////////// string username = "******"; string password = "******"; string domain = "google.com"; ///////////////////////// // Use a JSON resource // ///////////////////////// string format = "JSON"; string url = "http://www.whoisxmlapi.com/whoisserver/WhoisService?domainName=" + domain + "&username="******"&password="******"&outputFormat=" + format; // Create our JSON parser JavaScriptSerializer jsc = new JavaScriptSerializer(); jsc.RegisterConverters(new JavaScriptConverter[] { new DynamicJsonConverter() }); // Download and parse the JSON into a dynamic object dynamic result = jsc.Deserialize(new System.Net.WebClient().DownloadString(url), typeof(object)) as dynamic; // Print a nice informative string try { Console.WriteLine("JSON:\n"); result.PrintPairs(); } catch (Exception e) { try { Console.WriteLine("JSON:\nErrorMessage:\n\t{0}", result.ErrorMessage.msg); } catch (Exception e2) { Console.WriteLine("An unkown error has occurred!"); } } ///////////////////////// // Use an XML resource // ///////////////////////// format = "XML"; url = "http://www.whoisxmlapi.com/whoisserver/WhoisService?domainName=" + domain + "&username="******"&password="******"&outputFormat=" + format; var settings = new XmlReaderSettings(); var reader = XmlReader.Create(url, settings); WhoisRecord record = new WhoisRecord(); try { var serializer = new System.Xml.Serialization.XmlSerializer(typeof(WhoisRecord)); record = (WhoisRecord)serializer.Deserialize(reader); reader.Close(); // Print a nice informative string Console.WriteLine("XML:"); record.PrintToConsole(); } catch (Exception e) { try { var serializer = new System.Xml.Serialization.XmlSerializer(typeof(ErrorMessage)); ErrorMessage errorMessage = (ErrorMessage)serializer.Deserialize(reader); reader.Close(); // Print a nice informative string Console.WriteLine("XML:\nErrorMessage:\n\t{0}", errorMessage.msg); } catch (Exception e2) { Console.WriteLine("XML:\nException: {0}", e2.Message); } } // Prevent command window from automatically closing during debugging Console.WriteLine("Press any key to continue..."); Console.ReadKey(); }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { var results = MatchPatterns(record); if (results.Any()) { record = results.First().Value; } return record; }
/// <summary> /// Visits the specified record. /// </summary> /// <param name="record">The record.</param> /// <returns></returns> public WhoisRecord Visit(WhoisRecord record) { record.Server = WhoisServerLookup.Lookup(record.Domain); return(record); }
private WhoisRecord getServer(WhoisRecord record) { var serverGetter = new GetWhoisServer(); record.Server = serverGetter.GetServer(record.Domain); return record; }
/// <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; }