Skip to content

npwolf/pi-hole-dhcp-to-hosts

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

pi-hole-dhcp-to-hosts

Build Status

Keep DNS updated with DHCP reservations in dnsmasq even if they're not active. I built this after I installed pi-hole on a Raspberry Pi.

My preference is to have even inactive DHCP reservations return in DNS queries. I set my servers up with static IPs, but I like to keep track of them by creating DHCP reservations for them. Normally you would have to edit /etc/hosts yourself. This script does it for you.

pi-hole is probably never going to support this because dnsmasq could have more than one dhcp host entry with addresses on different subnets. Most home users probably never need to worry about that though. See

Installation on pi-hole

Install from the web: curl -sSL https://raw.githubusercontent.com/npwolf/pi-hole-dhcp-to-hosts/master/install.sh | sudo bash

or

Clone this repo and run sudo install.sh

It will place dhcp_to_hosts.py in /usr/local/bin and a crontab in /etc/cron.d/dhcp_to_hosts set to run every 5 minutes.

Example

Before Run

pi@pihole:~ $ cat /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       pihole

After Run

pi@pi-hole:~ $ cat /etc/dnsmasq.d/04-pihole-static-dhcp.conf
dhcp-host=80:51:62:2F:D9:EB,192.168.1.5,esxi
dhcp-host=1A:B8:93:BE:B5:C9,192.168.1.20,office-desktop
dhcp-host=4C:77:10:56:1E:8B,192.168.1.21,livingroom-firestick
dhcp-host=80:51:62:2F:D9:EB,192.168.1.22,work-laptop
pi@pihole:~ $ cat /etc/hosts
127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       pihole

### BEGIN: Auto-Generated by dhcp_hosts.py. DO NOT EDIT ###
192.168.1.5     esxi
192.168.1.20    office-desktop
192.168.1.21    livingroom-firestick
192.168.1.22    work-laptop
###   END: Auto-Generated by dhcp_hosts.py. DO NOT EDIT ###

Testing

Install tox if you don't have it yet: pip install tox

Then run the tests via tox:

tox

About

pi-hole dhcp-to-hosts file tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published