API module for Pi Hole
Project description
APiHole
This is an easy python API module for comunicating with Pi Hole through API. Works with AdminLTE v. 3
Install:
pip install APiHole
Get your Pi Hole API key from here:
sudo cat /etc/pihole/setupVars.conf | grep PASSWORD
Usage
from APiHole import PiHole
PiHoleAPI='your pi hole API key'
PiIP='your pi hole IP'
# Print API version (good for testing communication), (return string)
print(PiHole.GetVer(PiIP))
# get PiHole summary style format, (return dict)
print(PiHole.GetSummary(PiIP,PiHoleAPI,False))
# get PiHole summary raw format, (return dict)
print(PiHole.GetSummary(PiIP,PiHoleAPI,True))
# Get PiHole gravity status , (return dict)
print(PiHole.GetGravity(PiIP,PiHoleAPI))
# Get PiHole status, (return string)
PiHole.GetStatus(PiIP)
# Get PiHole 7 top items, split and convert to list (return dict)
Items=PiHole.GetTopItems(PiIP,PiHoleAPI,7)
if not len(Items) == 0:
ItemsTop=Items['top_queries']
resultListTOP = list(ItemsTop.items())
rtnTOP=[]
ItemsADS=Items['top_ads']
resultListADS = list(ItemsTop.items())
rtnTOP=[]
rtnADS=[]
for l in range(len(resultListTOP)):
rtnTOP.append(str(resultListTOP[l][0])+' : '+str(resultListTOP[l][1]))
rtnADS.append(str(resultListADS[l][0])+' : '+str(resultListADS[l][1]))
print('top_queries\n'+str(rtnTOP))
print('top_ads\n'+str(rtnADS))
# Enable PiHole (return string)
PiHole.Enable(PiIP,PiHoleAPI)
# Disable PiHole for 2 sec (return string)
PiHole.Disable(PiIP,PiHoleAPI,2)
# Get top clients (return string)
PiHole.GetTopClients(PiIP,PiHoleAPI)
# Add google.com to white list (return boolean)
PiHole.AddWhite(PiIP,PiHoleAPI,'google.com')
# Add google.com to block list (return boolean)
PiHole.AddBlack(PiIP,PiHoleAPI,'google.com')
# Get recent blocked domain, (return string)
PiHole.GetRecentBlocked(PiIP,PiHoleAPI)
# Get destinations in %, (return dict)
PiHole.GetDestination(PiIP,PiHoleAPI)
# Get query types in %, (return dict)
PiHole.GetQueryTypes(PiIP,PiHoleAPI)
# Get clients names, (return dict)
PiHole.GetClientNames(PiIP,PiHoleAPI)
# Get data of clients over time, (return dict)
PiHole.GetOverTimeDataClients(PiIP,PiHoleAPI)
# Get pi hole DNS port, (return string)
PiHole.GetDnsPort(PiIP,PiHoleAPI)
# Get pi hole chche info, (return dict)
PiHole.GetCacheInfo(PiIP,PiHoleAPI)
# Get pi hole data of 10 min
PiHole.GetOverTimeData10mins(PiIP,PiHoleAPI)
# Remove 'google.com' from block list
PiHole.RemoveBlock(PiIP,PiHoleAPI,'google.com')
# Add facebook regex to block list (return boolean)
PiHole.AddRegexBlock(PiIP,PiHoleAPI,'facebook')
# Remove facebook regex from block list (return boolean)
PiHole.RemoveRegexBlock(PiIP,PiHoleAPI,'facebook')
TODOs
Change log
- rev 0.0.1 - Initial release.
- rev 0.0.2 (by Dan Taeyoung)
- Typo fix.
- Add RemoveBlock function.
- Add AddRegexBlock function.
- Add RemoveRegexBlock function.
- rev 0.0.3 - Add raw syle summary (asked by GalFawkes)
Feedback
If you have any feedback, please reach out to us at shmulik.debby@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
APiHole-0.0.3.tar.gz
(5.2 kB
view details)
File details
Details for the file APiHole-0.0.3.tar.gz
.
File metadata
- Download URL: APiHole-0.0.3.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d9c0eaef2a97950e62486694ad2ed939d1e8cd30541fea686d763896096c226 |
|
MD5 | 74c901f2703b0244fce14b6af2f51966 |
|
BLAKE2b-256 | c236f990387c4c2592cb5e5e539941561fc0519d10e24b2b818e1fed61c553aa |