flipbit / whois Goto Github PK
View Code? Open in Web Editor NEWA WHOIS lookup and parsing library for .NET Standard 2.0 and .NET Framework 4.5.2
A WHOIS lookup and parsing library for .NET Standard 2.0 and .NET Framework 4.5.2
Trying to LookupAsync("rbm.com")
returns a response with Content "IP has reached its rate limit"
from my remote dev box, but the exact same code works fine from my local machine. Below is output from dev box. Ideas? Workarounds? Any advice is appreciated.
2020-04-06 15:04:16.5719 DEBUG Lookup rbm.com: Downloaded 3,051 byte(s) from whois.verisign-grs.com.
2020-04-06 15:04:16.5719 DEBUG Start: Parsing Template
2020-04-06 15:04:16.5719 DEBUG Finish: Parsing Template
2020-04-06 15:04:16.5719 INFO Start: Matching: verisign-grs.com
2020-04-06 15:04:16.5719 DEBUG Start: Processing: verisign-grs.com
2020-04-06 15:04:16.5719 DEBUG -> Ln: 1 Col: 17 : Assigning WhoisRedirect.Domain (1) as RBM.COM
2020-04-06 15:04:16.5719 DEBUG -> ToLowerTransformer: Transformed 'RBM.COM' to 'rbm.com'
2020-04-06 15:04:16.5776 DEBUG -> Ln: 3 Col: 27 : Assigning WhoisRedirect.Url (2) as whois.networksolutions.com
2020-04-06 15:04:16.5776 DEBUG -> Ln: 4 Col: 18 : Assigning WhoisRedirect.ReferralUrl (3) as http://networksolutions.com
2020-04-06 15:04:16.5776 DEBUG -> Ln: 5 Col: 17 : Assigning WhoisRedirect.ModifiedDate (4) as 2016-12-17T09:21:45Z
2020-04-06 15:04:16.5776 DEBUG -> ToDateTimeTransformer: Transformed '2016-12-17T09:21:45Z' to '12/17/2016 3:21:45 AM'
2020-04-06 15:04:16.5776 DEBUG -> Ln: 6 Col: 18 : Assigning WhoisRedirect.CreatedDate (5) as 1996-02-13T05:00:00Z
2020-04-06 15:04:16.5776 DEBUG -> ToDateTimeTransformer: Transformed '1996-02-13T05:00:00Z' to '2/12/1996 11:00:00 PM'
2020-04-06 15:04:16.5776 DEBUG -> Ln: 7 Col: 25 : Assigning WhoisRedirect.ExpirationDate (6) as 2022-02-14T05:00:00Z
2020-04-06 15:04:16.5776 DEBUG -> ToDateTimeTransformer: Transformed '2022-02-14T05:00:00Z' to '2/13/2022 11:00:00 PM'
2020-04-06 15:04:16.5776 DEBUG -> Ln: 8 Col: 14 : Assigning WhoisRedirect.Registrar (7) as Network Solutions, LLC
2020-04-06 15:04:16.5776 DEBUG -> Ln: 13 Col: 16 : Assigning WhoisRedirect.NameServers (8) as NS73.WORLDNIC.COM
2020-04-06 15:04:16.5776 WARN Missing property on target: WhoisRedirect.NameServers
2020-04-06 15:04:16.5776 ERROR Error Assigning Value: Could find property 'NameServers' on WhoisRedirect
2020-04-06 15:04:16.5776 DEBUG -> Ln: 14 Col: 16 : Assigning WhoisRedirect.NameServers (8) as NS74.WORLDNIC.COM
2020-04-06 15:04:16.5776 WARN Missing property on target: WhoisRedirect.NameServers
2020-04-06 15:04:16.5776 ERROR Error Assigning Value: Could find property 'NameServers' on WhoisRedirect
2020-04-06 15:04:16.5776 DEBUG Found 7 matches.
2020-04-06 15:04:16.5776 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.5939 DEBUG Finished: Processing: verisign-grs.com
2020-04-06 15:04:16.5939 INFO Match Success: True
2020-04-06 15:04:16.5939 INFO Total Matches: 7
2020-04-06 15:04:16.5939 INFO Total Errors : 2
2020-04-06 15:04:16.5939 INFO Finish: Matching: verisign-grs.com
2020-04-06 15:04:16.5939 DEBUG Found redirect for rbm.com to whois.networksolutions.com
2020-04-06 15:04:16.7053 DEBUG Lookup rbm.com: Downloaded 35 byte(s) from whois.networksolutions.com.
2020-04-06 15:04:16.7053 INFO Start: Matching: Whois.Resources.Patterns.Domains.Cira
2020-04-06 15:04:16.7053 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.Cira
2020-04-06 15:04:16.7053 DEBUG Found 0 matches.
2020-04-06 15:04:16.7053 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7053 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.Cira
2020-04-06 15:04:16.7053 INFO Match Success: False
2020-04-06 15:04:16.7053 INFO Total Matches: 0
2020-04-06 15:04:16.7053 INFO Total Errors : 0
2020-04-06 15:04:16.7053 INFO Finish: Matching: Whois.Resources.Patterns.Domains.Cira
2020-04-06 15:04:16.7053 INFO Start: Matching: DNS Belgium
2020-04-06 15:04:16.7053 DEBUG Start: Processing: DNS Belgium
2020-04-06 15:04:16.7053 DEBUG -> Missing Hint: % .be Whois Server
2020-04-06 15:04:16.7053 DEBUG Found 0 matches.
2020-04-06 15:04:16.7053 DEBUG 1 required tokens were missing.
2020-04-06 15:04:16.7053 DEBUG Finished: Processing: DNS Belgium
2020-04-06 15:04:16.7053 INFO Match Success: False
2020-04-06 15:04:16.7053 INFO Total Matches: 0
2020-04-06 15:04:16.7053 INFO Total Errors : 0
2020-04-06 15:04:16.7053 INFO Finish: Matching: DNS Belgium
2020-04-06 15:04:16.7053 INFO Start: Matching: DeNIC
2020-04-06 15:04:16.7186 DEBUG Start: Processing: DeNIC
2020-04-06 15:04:16.7186 DEBUG Found 0 matches.
2020-04-06 15:04:16.7186 DEBUG 1 required tokens were missing.
2020-04-06 15:04:16.7186 DEBUG Finished: Processing: DeNIC
2020-04-06 15:04:16.7186 INFO Match Success: False
2020-04-06 15:04:16.7186 INFO Total Matches: 0
2020-04-06 15:04:16.7186 INFO Total Errors : 0
2020-04-06 15:04:16.7186 INFO Finish: Matching: DeNIC
2020-04-06 15:04:16.7186 INFO Start: Matching: CZ.NIC
2020-04-06 15:04:16.7186 DEBUG Start: Processing: CZ.NIC
2020-04-06 15:04:16.7186 DEBUG -> Missing Hint: supplied through public information services of CZ.NIC association
2020-04-06 15:04:16.7186 DEBUG Found 0 matches.
2020-04-06 15:04:16.7186 DEBUG 1 required tokens were missing.
2020-04-06 15:04:16.7186 DEBUG Finished: Processing: CZ.NIC
2020-04-06 15:04:16.7186 INFO Match Success: False
2020-04-06 15:04:16.7186 INFO Total Matches: 0
2020-04-06 15:04:16.7186 INFO Total Errors : 0
2020-04-06 15:04:16.7186 INFO Finish: Matching: CZ.NIC
2020-04-06 15:04:16.7186 INFO Start: Matching: JPRS-Alt
2020-04-06 15:04:16.7186 DEBUG Start: Processing: JPRS-Alt
2020-04-06 15:04:16.7186 DEBUG -> Missing Hint: JPRS database provides information on network administration.
2020-04-06 15:04:16.7186 DEBUG Found 0 matches.
2020-04-06 15:04:16.7186 DEBUG 1 required tokens were missing.
2020-04-06 15:04:16.7186 DEBUG Finished: Processing: JPRS-Alt
2020-04-06 15:04:16.7186 INFO Match Success: False
2020-04-06 15:04:16.7186 INFO Total Matches: 0
2020-04-06 15:04:16.7186 INFO Total Errors : 0
2020-04-06 15:04:16.7186 INFO Finish: Matching: JPRS-Alt
2020-04-06 15:04:16.7186 INFO Start: Matching: JPRS
2020-04-06 15:04:16.7343 DEBUG Start: Processing: JPRS
2020-04-06 15:04:16.7343 DEBUG -> Missing Hint: JPRS database provides information on network administration.
2020-04-06 15:04:16.7343 DEBUG Found 0 matches.
2020-04-06 15:04:16.7343 DEBUG 1 required tokens were missing.
2020-04-06 15:04:16.7343 DEBUG Finished: Processing: JPRS
2020-04-06 15:04:16.7343 INFO Match Success: False
2020-04-06 15:04:16.7343 INFO Total Matches: 0
2020-04-06 15:04:16.7343 INFO Total Errors : 0
2020-04-06 15:04:16.7343 INFO Finish: Matching: JPRS
2020-04-06 15:04:16.7343 INFO Start: Matching: Whois.Resources.Patterns.Domains.HiChina
2020-04-06 15:04:16.7343 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.HiChina
2020-04-06 15:04:16.7343 DEBUG Found 0 matches.
2020-04-06 15:04:16.7343 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7343 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.HiChina
2020-04-06 15:04:16.7343 INFO Match Success: False
2020-04-06 15:04:16.7343 INFO Total Matches: 0
2020-04-06 15:04:16.7343 INFO Total Errors : 0
2020-04-06 15:04:16.7343 INFO Finish: Matching: Whois.Resources.Patterns.Domains.HiChina
2020-04-06 15:04:16.7343 INFO Start: Matching: Whois.Resources.Patterns.Domains.DnsPl
2020-04-06 15:04:16.7343 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.DnsPl
2020-04-06 15:04:16.7343 DEBUG Found 0 matches.
2020-04-06 15:04:16.7343 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7343 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.DnsPl
2020-04-06 15:04:16.7343 INFO Match Success: False
2020-04-06 15:04:16.7343 INFO Total Matches: 0
2020-04-06 15:04:16.7343 INFO Total Errors : 0
2020-04-06 15:04:16.7501 INFO Finish: Matching: Whois.Resources.Patterns.Domains.DnsPl
2020-04-06 15:04:16.7501 INFO Start: Matching: Whois.Resources.Patterns.Domains.NicBr
2020-04-06 15:04:16.7501 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.NicBr
2020-04-06 15:04:16.7501 DEBUG Found 0 matches.
2020-04-06 15:04:16.7501 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7501 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.NicBr
2020-04-06 15:04:16.7501 INFO Match Success: False
2020-04-06 15:04:16.7501 INFO Total Matches: 0
2020-04-06 15:04:16.7501 INFO Total Errors : 0
2020-04-06 15:04:16.7501 INFO Finish: Matching: Whois.Resources.Patterns.Domains.NicBr
2020-04-06 15:04:16.7501 INFO Start: Matching: Whois.Resources.Patterns.Domains.Nominet
2020-04-06 15:04:16.7501 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.Nominet
2020-04-06 15:04:16.7501 DEBUG Found 0 matches.
2020-04-06 15:04:16.7501 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7501 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.Nominet
2020-04-06 15:04:16.7501 INFO Match Success: False
2020-04-06 15:04:16.7501 INFO Total Matches: 0
2020-04-06 15:04:16.7501 INFO Total Errors : 0
2020-04-06 15:04:16.7501 INFO Finish: Matching: Whois.Resources.Patterns.Domains.Nominet
2020-04-06 15:04:16.7501 INFO Start: Matching: Whois.Resources.Patterns.Domains.RegistrarSafe
2020-04-06 15:04:16.7501 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.RegistrarSafe
2020-04-06 15:04:16.7657 DEBUG Found 0 matches.
2020-04-06 15:04:16.7657 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7657 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.RegistrarSafe
2020-04-06 15:04:16.7657 INFO Match Success: False
2020-04-06 15:04:16.7657 INFO Total Matches: 0
2020-04-06 15:04:16.7657 INFO Total Errors : 0
2020-04-06 15:04:16.7657 INFO Finish: Matching: Whois.Resources.Patterns.Domains.RegistrarSafe
2020-04-06 15:04:16.7657 INFO Start: Matching: Whois.Resources.Patterns.Domains.Csc
2020-04-06 15:04:16.7657 DEBUG Start: Processing: Whois.Resources.Patterns.Domains.Csc
2020-04-06 15:04:16.7657 DEBUG Found 0 matches.
2020-04-06 15:04:16.7657 DEBUG 0 required tokens were missing.
2020-04-06 15:04:16.7657 DEBUG Finished: Processing: Whois.Resources.Patterns.Domains.Csc
2020-04-06 15:04:16.7657 INFO Match Success: False
2020-04-06 15:04:16.7657 INFO Total Matches: 0
2020-04-06 15:04:16.7657 INFO Total Errors : 0
2020-04-06 15:04:16.7657 INFO Finish: Matching: Whois.Resources.Patterns.Domains.Csc
2020-04-06 15:04:16.7657 DEBUG Unable to parse WHOIS data.
2020-04-06 15:04:16.7657 ERROR Problem checking domain expiry for rbm.com
I added whois reference in my project and it is working good in local pc but when I upload project on server then it showing error :
"Couldn't connect to whois.verisign-grs.com: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 199.7.54.74:43"
Whois.WhoisException: Couldn't connect to whois.nicproxy.com: No connection could be made because the target machine actively refused it 94.73.191.254:43
Please log issues at:
https://github.com/flipbit/whois/issues ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 94.73.191.254:43
at System.Net.Sockets.Socket.InternalEndConnect(IAsyncResult asyncResult)
at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.Net.TcpReader.<Connect>d__3.MoveNext()
--- End of inner exception stack trace ---
at Whois.Net.TcpReader.<Connect>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.Net.TcpReader.<Read>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.Net.TcpReader.<Read>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.WhoisLookup.<Download>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.WhoisLookup.<LookupAsync>d__21.MoveNext()
Tokens.Exceptions.TokenMatcherException
HResult=0x80131500
Message=Unable to assign: WhoisRedirect.ExpirationDate
Source=Tokenizer
StackTrace:
at Tokens.TokenMatcher.TryMatch[T](String input, TokenMatch`1& match)
at Whois.Visitors.RedirectVisitor.IsARedirectRecord(WhoisResponse response, WhoisRedirect& redirect)
at Whois.Visitors.RedirectVisitor.<Visit>d__1.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.WhoisLookup.<LookupAsync>d__14.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.WhoisLookup.<LookupAsync>d__13.MoveNext()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Whois.AsyncHelper.RunSync[TResult](Func`1 func)
at Whois.WhoisLookup.Lookup(String domain)
at Wrappers.Whois.Lookup(String domain_ip) in C:\Users\bugma\Source\Repos\BORR\Wrappers\Whois.cs:line 21
Inner Exception 1:
TokenAssignmentException: Unable to assign: WhoisRedirect.ExpirationDate
Inner Exception 2:
FormatException: String was not recognized as a valid DateTime.
Does this mean I need to write a parser for WhoisRedirect.ExpirationDate or that your WhoisRedirect.ExpirationDate couldn't handle what the whois of sil.org gave? Where to now?
I'm curious because it looks like it's getting deadlocked, but can't confirm without digging deeper.
Hi,
I have an error when I call WhoisResponse response = whois.Lookup("Outbrain.com"); , but it's works with all other sites.
Error:
Error whilst reading data: Unable to read data from the transport connection: An existing connection must be closed by the remote host.
Please log issues at:
https://github.com/flipbit/whois/issues
Stacktrace:
at Whois.Net.TcpReader.Read(StringBuilder sb)
at Whois.Net.TcpReader.Read(String url, Int32 port, String command, Encoding encoding)
at Whois.Net.TcpReader.Read(String url, Int32 port, String command, Encoding encoding, Int32 timeoutSeconds)
at Whois.WhoisLookup.Download(String url, WhoisRequest request)
at Whois.WhoisLookup.LookupAsync(WhoisRequest request)
at Whois.WhoisLookup.Lookup(String domain)
at Program.VisitSite(WebCrawler webCrawler, ScreenshotTaker screenshotTaker, String site) in C:\Users\Akutsu\source\repos\PhishProtector\PhishExplorer\Program.cs:line 82
System.TimeoutException: 'The operation has timed out.'
System.TimeoutException
HResult=0x80131505
Message=The operation has timed out.
Source=Whois
StackTrace:
at Whois.Net.TcpReader.<Read>d__6.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Whois.WhoisLookup.<Download>d__24.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Whois.WhoisLookup.<LookupAsync>d__21.MoveNext()
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at Whois.AsyncHelper.RunSync[TResult](Func`1 func)
at Whois.WhoisLookup.Lookup(String domain)
at WhoisDomainNameChecker.Program.Main(String[] args) in E:\Dev\Projects\WhoisDomainNameChecker\WhoisDomainNameChecker\Program.cs:line 20
This exception was originally thrown at this call stack:
Whois.Net.TcpReader.Read(string, int, string, System.Text.Encoding, int)
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter<TResult>.GetResult()
Whois.WhoisLookup.Download(string, Whois.WhoisRequest)
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
Whois.WhoisLookup.LookupAsync(Whois.WhoisRequest)
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
...
[Call Stack Truncated]```
Great project, however, is there support for IP address lookup out of the box? For example, using ARIN. And if so can you please provide an example?
Entering an IP address in the .Lookup method yields this
Whois.WhoisException: 'WHOIS Query Format Error: 216.3.128.12
I also tried to make a WhoisRequest object and set .WhoisServerUrl property without success. Thank you!
I want to check "ggemtv.com" whois data
Domain Name: GGEMTV.COM
Registry Domain ID: 2282446647_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.dotname.co.kr
Registrar URL: http://www.dotname.co.kr
Updated Date: 2019-07-05T03:28:02Z
Creation Date: 2018-07-05T01:48:01Z
Registry Expiry Date: 2020-07-05T01:48:01Z
Registrar: Dotname Korea Corp.
Registrar IANA ID: 1132
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +82.7070900820
Domain Status: ok https://icann.org/epp#ok
Name Server: NS11.DNSTOOL.NET
Name Server: NS12.DNSTOOL.NET
Name Server: NS13.DNSTOOL.NET
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2019-07-30T15:29:14Z <<<
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net
Registrant Contact: dotname.co.kr/domain/whois/domain_search?mode=doit&domain=GGEMTV.COM
Administrative Contact: dotname.co.kr/domain/whois/domain_search?mode=doit&domain=GGEMTV.COM
Technical Contact: dotname.co.kr/domain/whois/domain_search?mode=doit&domain=GGEMTV.COM
For more information on Whois status codes, please visit https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en
Notes:
IMPORTANT: Port43 will provide the ICANN-required minimum data set
per ICANN Temporary Specification, adopted 17 May 2018.
https://www.icann.org/resources/pages/gtld-registration-data-specs-en/#appendixA
2.5.1. Registrar MUST provide an email address or a web form to facilitate
email communication with the relevant contact,
but MUST NOT identify the contact email address or the contact itself.
it has "Registry Expiry Date" but it can't take Expiration data
When I use version 3.0.0-beta4 of your Whois library, I get:
No match for domain 'fark.co'.
>>> Last update of WHOIS database: 2019-12-18 12:01:55 -0800 <<<
When I use my command line whois
, it works fine:
Domain Name: fark.co
Registry Domain ID: D1179231-CO
Registrar-Reseller Name: DYNADOT LLC
Registrar WHOIS Server: whois.dynadot.com
Registrar URL: https://www.dynadot.com/
Updated Date: 2019-08-10T18:21:22Z
Creation Date: 2010-07-20T18:06:39Z
Registry Expiry Date: 2020-07-19T23:59:59Z
Registrar: Dynadot LLC
Registrar IANA ID: 472
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.6502620100
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Registry Registrant ID:
Registrant Name:
Registrant Organization: wang changhong
Registrant Street:
Registrant Street:
Registrant Street:
Registrant City:
Registrant State/Province: shanghai
Registrant Postal Code:
Registrant Country: CN
Registrant Phone:
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
Registry Admin ID:
Admin Name:
Admin Organization:
Admin Street:
Admin Street:
Admin Street:
Admin City:
Admin State/Province:
Admin Postal Code:
Admin Country:
Admin Phone:
Admin Phone Ext:
Admin Fax:
Admin Fax Ext:
Admin Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
Registry Tech ID:
Tech Name:
Tech Organization:
Tech Street:
Tech Street:
Tech Street:
Tech City:
Tech State/Province:
Tech Postal Code:
Tech Country:
Tech Phone:
Tech Phone Ext:
Tech Fax:
Tech Fax Ext:
Tech Email: Please query the RDDS service of the Registrar of Record identified in this output for information on how to contact the Registrant, Admin, or Tech contact of the queried domain name.
Name Server: ns2.parkingcrew.net
Name Server: ns1.parkingcrew.net
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of WHOIS database: 2019-12-18T20:03:22Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
The above WHOIS results have been redacted to remove potential personal data. The full WHOIS output may be available to individuals and organisations with a legitimate interest in accessing this data not outweighed by the fundamental privacy rights of the data subject. To find out more, or to make a request for access, please visit: RDDSrequest.nic.co.
.CO Internet, S.A.S., the Administrator for .CO, has collected this information for the WHOIS database through Accredited Registrars. This information is provided to you for informational purposes only and is designed to assist persons in determining contents of a domain name registration record in the .CO Internet registry database. .CO Internet makes this information available to you "as is" and does not guarantee its accuracy.
By submitting a WHOIS query, you agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data: (1) to allow, enable, or otherwise support the transmission of mass unsolicited, commercial advertising or solicitations via direct mail, electronic mail, or by telephone; (2) in contravention of any applicable data and privacy protection laws; or (3) to enable high volume, automated, electronic processes that apply to the registry (or its systems). Compilation, repackaging, dissemination, or other use of the WHOIS database in its entirety, or of a substantial portion thereof, is not allowed without .CO Internet's prior written permission. .CO Internet reserves the right to modify or change these conditions at any time without prior or subsequent notification of any kind. By executing this query, in any manner whatsoever, you agree to abide by these terms. In some limited cases, domains that might appear as available in whois might not actually be available as they could be already registered and the whois not yet updated and/or they could be part of the Restricted list. In this cases, performing a check through your Registrar's (EPP check) will give you the actual status of the domain. Additionally, domains currently or previously used as extensions in 3rd level domains will not be available for registration in the 2nd level. For example, org.co, mil.co, edu.co, com.co, net.co, nom.co, arts.co, firm.co, info.co, int.co, web.co, rec.co, co.co.
NOTE: FAILURE TO LOCATE A RECORD IN THE WHOIS DATABASE IS NOT INDICATIVE OF THE AVAILABILITY OF A DOMAIN NAME. All domain names are subject to certain additional domain name registration rules. For details, please visit our site at www.cointernet.co <http://www.cointernet.co>.
When I try "sensen.com" It gives following error:
Couldn't connect to whois.hupo.com: No connection could be made because the target machine actively refused it. [::ffff:61.145.122.240]:43
Hi,
I have an Azure Function which uses library to check whois details. When running a single instance of the function all works fine, however when I have multiple concurrent instances I get intermittent errors after calling the Lookup (or LookupAsync) methods:
Error whilst reading data: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
I'm a bit out of my depth here. Any ideas what might be causing this?
Thanks!
whois pepe.ge
While appearing in raw content dates are not parsed in respectful properties (Creation & Expiry. No Updated).
Trying the same on google.com
is fine.
Only ge
domain issue?
Using latest 3.0.1
Please add support pour .Net Core
Message "WHOIS server lookup failed for blabla.site: Host sconosciuto" string
** StackTrace " in Whois.WhoisServerLookup.Lookup(String domain) in c:\Users\Chris\Dropbox\source\whois\Whois\WhoisServerLookup.cs:riga 87\r\n in Whois.Visitors.WhoisServerVisitor.Visit(WhoisRecord record) in c:\Users\Chris\Dropbox\source\whois\Whois\Visitors\WhoisServerVisitor.cs:riga 50\r\n in Whois.WhoisLookup.Lookup(String domain) in c:\Users\Chris\Dropbox\source\whois\Whois\WhoisLookup.cs:riga 84\r\n in whois.Program.Main(String[] args) in c:\users\effev\documents\visual studio 2017\Projects\whois\whois\Program.cs:riga 26" string
**
Please help
Tucows seems to use a slightly different format for dates:
Registrar URL: http://tucowsdomains.com
Updated Date: 2021-11-21T04:59:14
Creation Date: 2002-12-20T20:08:56
Registrar Registration Expiration Date: 2022-12-20T20:08:56
It looks like modifying whois/Whois/Resources/generic/tld/Found01.txt
to include their format (missing the Z
) will work:
Creation Date:{ Registered : ToDateTimeUtc("yyyy-MM-ddTHH:mm:ss") }
Updated Date:{ Updated : ToDateTimeUtc("yyyy-MM-ddTHH:mm:ss") }
Registrar Registration Expiration Date:{ Expiration : ToDateTimeUtc("yyyy-MM-ddTHH:mm:ss") }
Example domain is tucowsdomains.com
itself.
I want to check "ggemtv.com" whois data
Domain Name: GGEMTV.COM
Registry Domain ID: 2282446647_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.dotname.co.kr
Registrar URL: http://www.dotname.co.kr
Updated Date: 2019-07-05T03:28:02Z
Creation Date: 2018-07-05T01:48:01Z
Registry Expiry Date: 2020-07-05T01:48:01Z
Registrar: Dotname Korea Corp.
Registrar IANA ID: 1132
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +82.7070900820
Domain Status: ok https://icann.org/epp#ok
Name Server: NS11.DNSTOOL.NET
Name Server: NS12.DNSTOOL.NET
Name Server: NS13.DNSTOOL.NET
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2019-07-30T15:29:14Z <<<
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net
Registrant Contact: dotname.co.kr/domain/whois/domain_search?mode=doit&domain=GGEMTV.COM
Administrative Contact: dotname.co.kr/domain/whois/domain_search?mode=doit&domain=GGEMTV.COM
Technical Contact: dotname.co.kr/domain/whois/domain_search?mode=doit&domain=GGEMTV.COM
For more information on Whois status codes, please visit https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en
Notes:
IMPORTANT: Port43 will provide the ICANN-required minimum data set
per ICANN Temporary Specification, adopted 17 May 2018.
https://www.icann.org/resources/pages/gtld-registration-data-specs-en/#appendixA
2.5.1. Registrar MUST provide an email address or a web form to facilitate
email communication with the relevant contact,
but MUST NOT identify the contact email address or the contact itself.
it has "Registry Expiry Date" but it can't take Expiration data
Is it possible (in some way) to specify the source IP address from which sending whois requests?
Thanks.
Used the Net4 solution to give it a try - but this failes.
Having a solution should mean, it builds.
I tested with "tahribat.org" an org domain name under godaddy and it gives exception
Whois.WhoisException: 'Couldn't connect to whois.godaddy: No such host is known.
Would be really useful to get Whois data by IP address.
Any intention to add this functionality?
Is there a workaround to this at the moment?
Hi,
I have tried to do a lookup with an .it domain:
var whois = new WhoisLookup();
var response = whois.Lookup("dominiotest.it");
the template used is https://github.com/flipbit/whois/blob/master/Whois/Resources/whois.nic.it/it/Found.txt correctly,
it reads Domain, Status, Created, Last Updated and Expire Date Values. But the object with fields in multiple lines (Registrant, Admin Contact, Technical Contacts, Registrar and Nameservers) remain null.
Thanks in advance for the help
Hi,
For domain fr eu be ch cm es lu re, response.Expiration is null:
WhoisLookup whois = new WhoisLookup();
WhoisResponse response = whois.Lookup("domain.fr");
Example for .fr:
Expiry Date: 2024-06-30T19:50:11Z
This whois record cannot parse: Spacially Creation Dtae, Updated Date, Registrar Registration Expiration Date
Domain Name: RUMUZ.COM
Registry Domain ID: 98844040_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.domain.com
Registrar URL: www.domain.com
Updated Date: 2020-04-28T22:28:17
Creation Date: 2003-06-06T18:08:04
Registrar Registration Expiration Date: 2023-06-06T18:08:04
Registrar: Domain.com, LLC
Registrar IANA ID: 886
Reseller: Domain.com
Domain Status: ok https://icann.org/epp#ok
Registry Registrant ID:
Registrant Name: REDACTED FOR PRIVACY
Registrant Organization: REDACTED FOR PRIVACY
Registrant Street: REDACTED FOR PRIVACY
Registrant City: REDACTED FOR PRIVACY
Registrant State/Province: na
Registrant Postal Code: REDACTED FOR PRIVACY
Registrant Country: SA
Registrant Phone: REDACTED FOR PRIVACY
Registrant Phone Ext:
Registrant Fax: REDACTED FOR PRIVACY
Registrant Fax Ext:
Registrant Email: https://tieredaccess.com/contact/30e36b00-b990-444b-b09e-e3223b8c4d51
Registry Admin ID:
Admin Name: REDACTED FOR PRIVACY
Admin Organization: REDACTED FOR PRIVACY
Admin Street: REDACTED FOR PRIVACY
Admin City: REDACTED FOR PRIVACY
Admin State/Province: REDACTED FOR PRIVACY
Admin Postal Code: REDACTED FOR PRIVACY
Admin Country: REDACTED FOR PRIVACY
Admin Phone: REDACTED FOR PRIVACY
Admin Phone Ext:
Admin Fax: REDACTED FOR PRIVACY
Admin Fax Ext:
Admin Email: REDACTED FOR PRIVACY
Registry Tech ID:
Tech Name: REDACTED FOR PRIVACY
Tech Organization: REDACTED FOR PRIVACY
Tech Street: REDACTED FOR PRIVACY
Tech City: REDACTED FOR PRIVACY
Tech State/Province: REDACTED FOR PRIVACY
Tech Postal Code: REDACTED FOR PRIVACY
Tech Country: REDACTED FOR PRIVACY
Tech Phone: REDACTED FOR PRIVACY
Tech Phone Ext:
Tech Fax: REDACTED FOR PRIVACY
Tech Fax Ext:
Tech Email: REDACTED FOR PRIVACY
Name Server: dns1.register.com
Name Server: dns2.register.com
DNSSEC: unsigned
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.6027165396
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2020-05-19T17:03:39Z <<<
"For more information on Whois status codes, please visit https://icann.org/epp"
Registration Service Provider:
Domain.com, [email protected]
+1.8004033568
This company may be contacted for domain login/passwords,
DNS/Nameserver changes, and general domain support questions.
When I try to use the lib, I got this. It is just me or someone else got the same issue?
Whois.WhoisException: Couldn't connect to whois.iana.org: No connection could be made because the target machine actively refused it.
Please log issues at:
https://github.com/flipbit/whois/issues
---> System.Net.Sockets.SocketException (10061): No connection could be made because the target machine actively refused it.
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Threading.Tasks.ValueTask.ValueTaskSourceAsTask.<>c.<.cctor>b__4_0(Object state)
--- End of stack trace from previous location ---
at System.Net.Sockets.TcpClient.CompleteConnectAsync(Task task)
at Whois.Net.TcpReader.Connect(String domain, Int32 port, Encoding encoding)
--- End of inner exception stack trace ---
at Whois.Net.TcpReader.Connect(String domain, Int32 port, Encoding encoding)
at Whois.Net.TcpReader.Read(String url, Int32 port, String command, Encoding encoding)
at Whois.Net.TcpReader.Read(String url, Int32 port, String command, Encoding encoding, Int32 timeoutSeconds)
at Whois.Servers.IanaServerLookup.Download(String tld, WhoisRequest request)
at Whois.Servers.IanaServerLookup.LookupAsync(WhoisRequest request)
at Whois.WhoisLookup.LookupAsync(WhoisRequest request)
at newTD.Controllers.GetDomainController.Query(String id) in C:\WORK\newTD\newTD\newTD\Controllers\GetDomainController.cs:line 33
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
Hi,
Apologies if this is a daft question, but when I try to compile the following:
var json = JsonConvert.SerializeObject(response.ParsedResponse, Formatting.Indented);
I get an error message saying that "'WhoisResponse' does not contain a definition for 'ParsedResponse'". Am I missing a required library/reference?
This is a DotNetCore 3.1 application.
Thanks!
I have two domains on the .CPA TLD. The .Lookup sometimes works for me, not every time, seems like less, guessing appx 20%. seems like difference is related to network connection (home different from office). failures happen on both networks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.