|
|
domquery($domain) : Domain querying
A simple query operation, similar to the traditional whois
server. The first argument is the domain name to query and
the hash returned has up to three tags:
| Hash returned by domquery() |
| Hash Key | Description |
| domain |
Hash of domain data:
| Key | Description |
| domain | Domain Name |
| registered | Registration date (YYYY-MM-DD) |
| org | Registrant |
| admin | Admin. Contact |
| tech | Tech. Contact |
| bill | Billing Contact |
| rr | Array of resource records |
| id | Object identifier |
|
| found |
| 1 | if the domain was found |
| 0 | otherwise | |
|
| error |
An array of error messages which may include:
| Code | Description |
| 310 | Invalid argument format |
| 320 | Invalid domain name |
| 500 | Fatal error in query |
|
Including contact details
A second, optional, scalar argument, will expand the contact
details if true. Instead of returning each contact's identifier, the
contact is expanded and its details are returned instead.
Example
Querying a normal domain
Request
domquery('xmlrpcdemo.tc')
<methodCall>
<methodName>domquery</methodName>
<params>
<param>
<value><string>xmlrpcdemo.tc</string></value>
</param>
</params>
</methodCall>
Return
{
'found' => '1',
'domain' => {
'org' => 'adams550a',
'registered' => '2001-03-21',
'id' => 'xmlr3585s',
'domain' => 'xmlrpcdemo.tc',
'rr' => [
{
'rclass' => 'ns',
'rdata' => 'ns1.acme.com',
'rname' => ''
},
{
'rclass' => 'ns',
'rdata' => 'ns2.acme.com',
'rname' => ''
}
],
'admin' => 'per4073.tc',
'tech' => 'per4073.tc',
'bill' => 'per4073.tc'
},
'error' => []
}
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>domain</name>
<value>
<struct>
<member>
<name>admin</name>
<value><string>per4073.tc</string></value>
</member>
<member>
<name>registered</name>
<value><string>2001-03-21</string></value>
</member>
<member>
<name>domain</name>
<value><string>xmlrpcdemo.tc</string></value>
</member>
<member>
<name>org</name>
<value><string>adams550a</string></value>
</member>
<member>
<name>tech</name>
<value><string>per4073.tc</string></value>
</member>
<member>
<name>id</name>
<value><string>xmlr3585s</string></value>
</member>
<member>
<name>rr</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>rclass</name>
<value><string>ns</string></value>
</member>
<member>
<name>rdata</name>
<value><string>ns1.acme.com</string></value>
</member>
<member>
<name>rname</name>
<value><string/></value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>rclass</name>
<value><string>ns</string></value>
</member>
<member>
<name>rdata</name>
<value><string>ns2.acme.com</string></value>
</member>
<member>
<name>rname</name>
<value><string/></value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>bill</name>
<value><string>per4073.tc</string></value>
</member>
</struct>
</value>
</member>
<member>
<name>error</name>
<value>
<array><data/></array>
</value>
</member>
<member>
<name>found</name>
<value>
<int>1</int>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Querying an unregistered domain
Request
domquery('xxxmlrpcdemo.tc')
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>domquery</methodName>
<params>
<param>
<value><string>xxxmlrpcdemo.tc</string></value>
</param>
</params>
</methodCall>
Return
{
'found' => '0',
'error' => []
}
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>error</name>
<value>
<array><data/></array>
</value>
</member>
<member>
<name>found</name>
<value>
<int>0</int>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Querying a non-AdamsNames domain
Request
domquery('xmlrpcdemo.com')
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>domquery</methodName>
<params>
<param>
<value><string>xmlrpcdemo.com</string></value>
</param>
</params>
</methodCall>
Return
{
'error' => [
[
320,
'Domain is not a possible AdamsNames domain'
]
]
}
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>error</name>
<value>
<array>
<data>
<value>
<array>
<data>
<value>
<int>320</int>
</value>
<value>
<string>Domain is not a possible...</string>
</value>
</data>
</array>
</value>
</data>
</array>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
Querying a normal domain and contacts
Request
domquery('xmlrpcdemo.tc', 1)
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>domquery</methodName>
<params>
<param>
<value><string>xmlrpcdemo.tc</string></value>
</param>
<param>
<value>
<int>1</int>
</value>
</param>
</params>
</methodCall>
Return
{
'found' => '1',
'domain' => {
'org' => {
'registered' => '2001-03-21',
'email' => 'test@adamsnames.tc',
'id' => 'adams550a',
'address' => 'Cambridge',
'fax' => '',
'cc' => 'uk',
'name' => 'AdamsNames Tests',
'phone' => '1234'
},
'registered' => '2001-03-21',
'id' => 'xmlr3585s',
'domain' => 'xmlrpcdemo.tc',
'rr' => [
{
'rclass' => 'ns',
'rdata' => 'ns1.acme.com',
'rname' => ''
},
{
'rclass' => 'ns',
'rdata' => 'ns2.acme.com',
'rname' => ''
}
],
'admin' => {
'registered' => '1998-08-28',
'email' => 'person@adamsnames.tc',
'id' => 'per4073.tc',
'address' => '3 Adams Road\\nCAMBRIDGE\\nCB3 9AD',
'fax' => '',
'cc' => 'uk',
'name' => 'AdamsNames',
'phone' => '1'
},
'tech' => {
'registered' => '1998-08-28',
'email' => 'person@adamsnames.tc',
'id' => 'per4073.tc',
'address' => '3 Adams Road\\nCAMBRIDGE\\nCB3 9AD',
'fax' => '',
'cc' => 'uk',
'name' => 'AdamsNames',
'phone' => '1'
},
'bill' => {
'registered' => '1998-08-28',
'email' => 'person@adamsnames.tc',
'id' => 'per4073.tc',
'address' => '3 Adams Road\\nCAMBRIDGE\\nCB3 9AD',
'fax' => '',
'cc' => 'uk',
'name' => 'AdamsNames',
'phone' => '1'
}
},
'error' => []
}
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>domain</name>
<value>
<struct>
<member>
<name>admin</name>
<value>
<struct>
<member>
<name>registered</name>
<value><string>1998-08-28</string></value>
</member>
<member>
<name>name</name>
<value><string>AdamsNames</string></value>
</member>
<member>
<name>phone</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>email</name>
<value><string>person@adamsnames.tc</string></value>
</member>
<member>
<name>cc</name>
<value><string>uk</string></value>
</member>
<member>
<name>fax</name>
<value><string/></value>
</member>
<member>
<name>address</name>
<value>
<string>3 Adams Road\nCAMBRIDGE...</string>
</value>
</member>
<member>
<name>id</name>
<value><string>per4073.tc</string></value>
</member>
</struct>
</value>
</member>
<member>
<name>registered</name>
<value><string>2001-03-21</string></value>
</member>
<member>
<name>domain</name>
<value><string>xmlrpcdemo.tc</string></value>
</member>
<member>
<name>org</name>
<value>
<struct>
<member>
<name>registered</name>
<value><string>2001-03-21</string></value>
</member>
<member>
<name>name</name>
<value><string>AdamsNames Tests</string></value>
</member>
<member>
<name>phone</name>
<value>
<int>1234</int>
</value>
</member>
<member>
<name>email</name>
<value><string>test@adamsnames.tc</string></value>
</member>
<member>
<name>cc</name>
<value><string>uk</string></value>
</member>
<member>
<name>fax</name>
<value><string/></value>
</member>
<member>
<name>address</name>
<value><string>Cambridge</string></value>
</member>
<member>
<name>id</name>
<value><string>adams550a</string></value>
</member>
</struct>
</value>
</member>
<member>
<name>tech</name>
<value>
<struct>
<member>
<name>registered</name>
<value><string>1998-08-28</string></value>
</member>
<member>
<name>name</name>
<value><string>AdamsNames</string></value>
</member>
<member>
<name>phone</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>email</name>
<value><string>person@adamsnames.tc</string></value>
</member>
<member>
<name>cc</name>
<value><string>uk</string></value>
</member>
<member>
<name>fax</name>
<value><string/></value>
</member>
<member>
<name>address</name>
<value>
<string>3 Adams Road\nCAMBRIDGE...</string>
</value>
</member>
<member>
<name>id</name>
<value><string>per4073.tc</string></value>
</member>
</struct>
</value>
</member>
<member>
<name>id</name>
<value><string>xmlr3585s</string></value>
</member>
<member>
<name>rr</name>
<value>
<array>
<data>
<value>
<struct>
<member>
<name>rclass</name>
<value><string>ns</string></value>
</member>
<member>
<name>rdata</name>
<value><string>ns1.acme.com</string></value>
</member>
<member>
<name>rname</name>
<value><string/></value>
</member>
</struct>
</value>
<value>
<struct>
<member>
<name>rclass</name>
<value><string>ns</string></value>
</member>
<member>
<name>rdata</name>
<value><string>ns2.acme.com</string></value>
</member>
<member>
<name>rname</name>
<value><string/></value>
</member>
</struct>
</value>
</data>
</array>
</value>
</member>
<member>
<name>bill</name>
<value>
<struct>
<member>
<name>registered</name>
<value><string>1998-08-28</string></value>
</member>
<member>
<name>name</name>
<value><string>AdamsNames</string></value>
</member>
<member>
<name>phone</name>
<value>
<int>1</int>
</value>
</member>
<member>
<name>email</name>
<value><string>person@adamsnames.tc</string></value>
</member>
<member>
<name>cc</name>
<value><string>uk</string></value>
</member>
<member>
<name>fax</name>
<value><string/></value>
</member>
<member>
<name>address</name>
<value>
<string>3 Adams Road\nCAMBRIDGE...</string>
</value>
</member>
<member>
<name>id</name>
<value><string>per4073.tc</string></value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</member>
<member>
<name>error</name>
<value>
<array><data/></array>
</value>
</member>
<member>
<name>found</name>
<value>
<int>1</int>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
|