new script for kea dhcp server mgmt
This commit is contained in:
parent
ce8a4e5a9e
commit
6cbcaa768d
64
kea-mgmt.py
Normal file
64
kea-mgmt.py
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
import pprint
|
||||||
|
|
||||||
|
|
||||||
|
url = "http://localhost:8000/"
|
||||||
|
headers = {"Content-Type": "application/json"}
|
||||||
|
|
||||||
|
|
||||||
|
# Validate for correct IPv4 address syntax
|
||||||
|
def is_valid_ipv4(ip_address):
|
||||||
|
ip_regex = re.compile(r'^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$')
|
||||||
|
return bool(ip_regex.match(ip_address))
|
||||||
|
|
||||||
|
|
||||||
|
print("Choose action to execute:")
|
||||||
|
print("1. list all DHCP4 leases")
|
||||||
|
print("2. resend specific IP address to DNS server")
|
||||||
|
|
||||||
|
choice = int(input("Enter choice: "))
|
||||||
|
|
||||||
|
if choice == 1:
|
||||||
|
data = {
|
||||||
|
"command": "lease4-get-all",
|
||||||
|
"service": [
|
||||||
|
"dhcp4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
elif choice == 2:
|
||||||
|
while True:
|
||||||
|
print("Please enter an IPv4 address:")
|
||||||
|
ip_address = input()
|
||||||
|
|
||||||
|
if is_valid_ipv4(ip_address):
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print("Invalid IPv4 address. Please try again.")
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"command": "lease4-resend-ddns",
|
||||||
|
"arguments": {
|
||||||
|
"ip-address": ip_address
|
||||||
|
},
|
||||||
|
"service": [
|
||||||
|
"dhcp4"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
print("Invalid choice.")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
# Get the json data from the server
|
||||||
|
response = requests.post(url, headers=headers, data=json.dumps(data))
|
||||||
|
|
||||||
|
# Make sure the request was successful
|
||||||
|
response.raise_for_status()
|
||||||
|
|
||||||
|
try:
|
||||||
|
pprint.pprint(response.json())
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
print("Error: The server response is not in a valid JSON format.")
|
Loading…
x
Reference in New Issue
Block a user