Skip to main content

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

  • Rev 0.0.2 update by Dan Taeyoung

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 , (return dict)
PiHole.GetSummary(PiIP,PiHoleAPI)

# 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.

Feedback

If you have any feedback, please reach out to us at shmulik.debby@gmail.com

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

APiHole-0.0.2.tar.gz (5.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page