DCHK Client Version 0.5.7 - Documentation |
![]() |
The DCHK client is a command line tool to send DCHK requests to a server. It is based on the DCHK library and written in plain C.
The simplest way to make a query is to call the client with the domain names as parameter:
dchk denic.de example.de frwzefgqw.de
The client will use the TLD of the first domain an tries to find the correct DCHK server by DNS. If this is not possible, you can tell the client manually which server to use:
dchk -h dchk.denic.de -p 715 denic.de example.de frwzefgqw.de
A typical answer of the client looks like this:
denic.de: active [2008-06-12T15:55:00+02:00] example.de: active [2008-06-12T15:55:00+02:00] frwzefgqw.de: free
If you enable the verbose mode, you will get detailed informations about request and response packets, which is meant for debugging reasons:
dchk -V --ex -h dchk.denic.de -p 715 denic.de
Answer:
[Request Header] Packet size: 152 Bytes, Type: Request Version: 0 Transaction Id: 55031 Maximum Response Length: 1500 Bytes Authority Length: 7 Bytes, Authority: unknown Payload deflated: yes Deflate supported: yes Payload-Type: XML [Request beautified] <?xml version="1.0" encoding="UTF-8"?> <iris1:request xmlns:iris1="urn:ietf:params:xml:ns:iris1"> <iris1:searchSet> <iris1:lookupEntity registryType="dchk1" entityClass="domain-name" entityName="denic.de"/> </iris1:searchSet> </iris1:request> [Response Header] Packet size: 581 Bytes, Type: Response Version: 0 Transaction Id: 55031 Maximum Response Length: 0 Bytes Authority Length: 0 Bytes, Authority: - Payload deflated: no Deflate supported: yes Payload-Type: XML [Response beautified] <?xml version="1.0" encoding="UTF-8"?> <iris1:response xmlns:iris1="urn:ietf:params:xml:ns:iris1"> <iris1:resultSet> <iris1:answer> <urn:domain xmlns:urn="urn:ietf:params:xml:ns:dchk1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" registryType="dchk1" entityClass="domain-name" entityName="denic.de" authority="de" xsi:type="urn:domainType"> <urn:domainName>denic.de</urn:domainName> <urn:status> <urn:active/> </urn:status> <urn:lastDatabaseUpdateDateTime>2008-06-13T10:45:00+02:00</urn:lastDatabaseUpdateDateTime> </urn:domain> </iris1:answer> </iris1:resultSet> </iris1:response> [Result] denic.de: active [2008-06-13T10:45:00+02:00]
The following table explains the meaning of the status keyword and compares it with the output of whois:
Status DCHK | Description | Status whois |
---|---|---|
active | the domain is registered and connected | connect |
inactive | the domain is registered but not connected (no DNS entries) | failed |
reserved | the domain name is valid, but it's not allowed to register by policy | invalid or blocked |
free | the domain is free and can be registered. "free" is not a status defined in RFC 5144, it's a translation from the client from the error message "nameNotFound" described in RFC 3981, chapter 4.2. | free |
invalid | the domain name is not valid and cannot be registered. Again, this is not a status defined in RFC 5144, it's a translation of the client from the error message "invalidName" described in RFC 3981, chapter 4.2. | invalid |
The DCHK client understands the following parameters:
Parameter | Description |
---|---|
-h HOST | Hostname or IP of DCHK-Server (default=DNS lookup) |
-p PORT | Port of DCHK-Server (Default=DNS lookup or port 715) |
-a AUTHORITY | Authority (Default=unknown) |
-t TLD | TLD to query, only used when no hostname is given (default=de) |
-v | Verbose: Request and Answer will be printed as XML |
-V | same as -v plus request and answer header will be explained |
--ex | When using verbose mode (-v), XML-output will be enhanced for better reading |
--ps # | Set maximum packet size (default is 1500 bytes) |
--md # | Set maximum number of domains per DCHK query (default=20) |
--dac | Do not accept compressed answers (default=accept) |
--sc | Send compressed requests (default=uncompressed) |
--timeout # | Timeout for DCHK requests in seconds (default=5, 0=none) |
Domain | Domain names which should be checked. If you use the word "version" instead of a domain name, a version query will be send to the server. You must use the -t or the -h and -p flags in conjunction with this |
--fs | With this feature you can check all TLDs if they provide DCHK servers. It simply checks if the TLD's zonefile contains the required NAPTR and SRV records. |