Python interface to RimuHosting/Zonomi DNS
Project description
RimuDNS
=======
[RimuHosting](http://rimuhosting.com) Python DNS tools
Documentation for the API can be found [here](https://rimuhosting.com/dns/dyndns.jsp)
and [here](https://zonomi.com/app/dns/dyndns.jsp) for RimuHosting and Zonomi respectively.
The RimuDNS class is a wrapper around the REST API calls.
Installation
------------
easy_install rimudns
or
pip install rimudns
Usage
-----
The API key can be generated and replaced in the RimuHosting control panel
from https://rimuhosting.com/cp/apikeys.jsp
Get started:
```python
#!/usr/bin/env python
from rimudns import RimuDNS
api_key = 'GETYOURAPIKEYFROMTHECONTROLPANEL'
dns = RimuDNS(api_key)
dns.use_rimuhosting()
```
List all domains:
```python
for domain in dns.list_zones():
print domain['name']
```
Create a new domain:
```python
dns.create_zone('example.com')
```
Delete a domain:
```python
dns.delete_zone('example.com')
```
Import a domain from a BIND zone file or string::
* IMPORT_AXFR = 1
* IMPORT_FILE = 2
* IMPORT_TEXT = 3
* IMPORT_DICT = 4
* IMPORT_GUESS = 5
_for more information about *IMPORT_GUESS* see [Guessing Feature] below._
```python
from rimudns import ZoneHandle
dns.import_zone('example.com', ZoneHandle.IMPORT_FILE, '/tmp/example.com.zone')
```
Export a domain to file:
```python
dnsdns.to_file('/tmp/example.com.zone')
```
Delete a domain:
```python
dns.delete_zone('example.com')
```
List all records for a domain:
```python
records = dns.list_records('example.com')
for record_type in records:
print 'Type: ', record_type
for record in records[record_type]
print 'name: %s -> %s' % (record['name'], record['content')
```
Add/Update a record::
```python
dns.set_record('example.com', '127.0.0.1', record_type='A', ttl=600)
```
Delete a record::
```python
dns.delete_record('example.com', '127.0.0.1', 'A')
```
Change an IP across all zones::
```python
old_ip = '127.0.0.1'
new_ip = '127.0.0.2'
dns.change_ip(old_ip, new_ip)
```
Convert a zone to slave/back to regular::
```python
dns.convert_to_regular('example.com')
dns.convert_to_slave('example.com')
```
Web Interface
=============
You can always use the RimuHosting/Zonomi tools to edit your DNS zones
Try: https://rimuhosting.com/dns/
Guessing Feature
================
Most of the time you don't have access to AXFR or the Zone File to import the DNS zone directly.
The import_zone offers a _guessing_ feature that tries to build the zone information from DNS queries.
You can also provide extra guesses.
```python
extra_guesses = ['mail2', 'test', 'test1']
records = dns.import_zone('funinc.org', ZoneHandle.IMPORT_GUESS, param=extra_guesses, dryrun=True)
for record_type in records:
print 'Type: ', record_type
for record in records[record_type]
print 'name: %s -> %s' % (record['name'], record['content')
```
=======
[RimuHosting](http://rimuhosting.com) Python DNS tools
Documentation for the API can be found [here](https://rimuhosting.com/dns/dyndns.jsp)
and [here](https://zonomi.com/app/dns/dyndns.jsp) for RimuHosting and Zonomi respectively.
The RimuDNS class is a wrapper around the REST API calls.
Installation
------------
easy_install rimudns
or
pip install rimudns
Usage
-----
The API key can be generated and replaced in the RimuHosting control panel
from https://rimuhosting.com/cp/apikeys.jsp
Get started:
```python
#!/usr/bin/env python
from rimudns import RimuDNS
api_key = 'GETYOURAPIKEYFROMTHECONTROLPANEL'
dns = RimuDNS(api_key)
dns.use_rimuhosting()
```
List all domains:
```python
for domain in dns.list_zones():
print domain['name']
```
Create a new domain:
```python
dns.create_zone('example.com')
```
Delete a domain:
```python
dns.delete_zone('example.com')
```
Import a domain from a BIND zone file or string::
* IMPORT_AXFR = 1
* IMPORT_FILE = 2
* IMPORT_TEXT = 3
* IMPORT_DICT = 4
* IMPORT_GUESS = 5
_for more information about *IMPORT_GUESS* see [Guessing Feature] below._
```python
from rimudns import ZoneHandle
dns.import_zone('example.com', ZoneHandle.IMPORT_FILE, '/tmp/example.com.zone')
```
Export a domain to file:
```python
dnsdns.to_file('/tmp/example.com.zone')
```
Delete a domain:
```python
dns.delete_zone('example.com')
```
List all records for a domain:
```python
records = dns.list_records('example.com')
for record_type in records:
print 'Type: ', record_type
for record in records[record_type]
print 'name: %s -> %s' % (record['name'], record['content')
```
Add/Update a record::
```python
dns.set_record('example.com', '127.0.0.1', record_type='A', ttl=600)
```
Delete a record::
```python
dns.delete_record('example.com', '127.0.0.1', 'A')
```
Change an IP across all zones::
```python
old_ip = '127.0.0.1'
new_ip = '127.0.0.2'
dns.change_ip(old_ip, new_ip)
```
Convert a zone to slave/back to regular::
```python
dns.convert_to_regular('example.com')
dns.convert_to_slave('example.com')
```
Web Interface
=============
You can always use the RimuHosting/Zonomi tools to edit your DNS zones
Try: https://rimuhosting.com/dns/
Guessing Feature
================
Most of the time you don't have access to AXFR or the Zone File to import the DNS zone directly.
The import_zone offers a _guessing_ feature that tries to build the zone information from DNS queries.
You can also provide extra guesses.
```python
extra_guesses = ['mail2', 'test', 'test1']
records = dns.import_zone('funinc.org', ZoneHandle.IMPORT_GUESS, param=extra_guesses, dryrun=True)
for record_type in records:
print 'Type: ', record_type
for record in records[record_type]
print 'name: %s -> %s' % (record['name'], record['content')
```
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
RimuDNS-0.0.4.tar.gz
(8.4 kB
view hashes)