Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9ffa3cd076 | |||
| e95018240c |
49
README.md
49
README.md
@ -1,3 +1,50 @@
|
||||
# cloudflare-delete-all-dns-records
|
||||
|
||||
Delete all the DNS records in a domain in Cloudflare.
|
||||
Delete all the DNS records in a domain in Cloudflare.
|
||||
|
||||
This program will delete all the DNS records in a given domain. Before deletion, it'll also take a backup of the existing DNS records and save it as a .txt file in [BIND](https://www.isc.org/bind/) format.
|
||||
|
||||
## Prerequisites
|
||||
- [Python 3](https://www.python.org/)
|
||||
- Pip
|
||||
|
||||
>sudo apt install python3-pip
|
||||
|
||||
- [Python requests library](https://pypi.org/project/requests/)
|
||||
|
||||
>pip install requests
|
||||
|
||||
- CloudFlare API key
|
||||
|
||||
You need a CloudFlare API key with access to *edit zone DNS* access for the domain:
|
||||
|
||||
1. Go to your Cloudflare profile and then [API Tokens](https://dash.cloudflare.com/profile/api-tokens)
|
||||
2. Click on *Create Token*
|
||||
3. You can use the template *Edit Zone DNS*
|
||||
4. Enter the of the domain(s) you want to delete DNS from in *Zone Resources*
|
||||
5. Click *Continue to summary* and the *Create Token*
|
||||
6. You should get an API Token now.
|
||||
|
||||
|
||||
## Running the program
|
||||
|
||||
1. Download and extract the zip file or Clone this repository:
|
||||
|
||||
>git clone https://git.pavakpaul.com/pavak/cloudflare-delete-all-dns-records.git
|
||||
|
||||
2. cd to the directory:
|
||||
|
||||
>cd
|
||||
cloudflare-delete-all-dns-records
|
||||
|
||||
3. Run app.py using python3 and follow the instructions
|
||||
|
||||
>python3 app.py
|
||||
|
||||
### Using a config file to pass the API credentials
|
||||
|
||||
If you want to delete all the DNS records from multiple domains, it is a good idea to use a single token for mutiple domains. In that case, you can use save your credentials in config.json. Simply rename config_sample.json to config.json: `mv config_sample.json config.json` and save your configuration there. To load the config file, simply pass the argument _loadconfig_:
|
||||
|
||||
>python3 app.py loadconfig
|
||||
|
||||
You still can't delete DNS from multiple domains to reduce accidental removals of DNS. To be safe, it's always a good idea to just create a token for a single domain.
|
||||
9
app.py
9
app.py
@ -7,9 +7,9 @@ from pathlib import Path
|
||||
from apicalls import *
|
||||
|
||||
|
||||
# Get API key and Email address
|
||||
# Get API tocken and Email address
|
||||
def getCredentials():
|
||||
api_key = input("Enter the Cloudflare API key: ")
|
||||
api_key = input("Enter the Cloudflare API token: ")
|
||||
email_address = input("Enter the Cloudflare Email address: ")
|
||||
return {"api_key": api_key, "email": email_address}
|
||||
|
||||
@ -20,7 +20,8 @@ if len(argv) > 1 and 'loadconfig' in argv:
|
||||
if Path("config.json").exists():
|
||||
configfile = open("config.json")
|
||||
config = json.load(configfile)
|
||||
credentials = {'api_key': config['API_Key'], 'email': config['Email']}
|
||||
credentials = {
|
||||
'api_key': config['API_Token'], 'email': config['Email']}
|
||||
else:
|
||||
print('config.json was not found. Please enter the credentials manually')
|
||||
credentials = getCredentials()
|
||||
@ -73,4 +74,4 @@ if domainToDelete in zone_list:
|
||||
else:
|
||||
print('Aborted, bye...')
|
||||
else:
|
||||
print('We don\'t have access to the domain name you have entered. Please make sure the API key you have provided has access to the domain name you have entereed.')
|
||||
print('We don\'t have access to the domain name you have entered. Please make sure the API token you have provided has access to the domain name you have entereed.')
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{
|
||||
"API_Key": "your api key goes here",
|
||||
"API_Token": "your api key goes here",
|
||||
"Email": "your cloudflare email address"
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user