Skip to main content

Very simple DHCP server written in Python.

Project description

Simple DHCP Server

Download

This is a purely Python DHCP server that does not require any additional libraries or installs other that Python 3.

It was testet under Ubuntu 14 with Python and Windows 7. It does not use any operating system specific Python functions, so it should work when Python 3 works.

images/dhcpgui.png
dhcpgui lists MAC address, IP address and host name.

This DHCP server program will assign IP addresses ten seconds after it received packets from clients. So it can be used in networks that already have a dhcp server running.

This Python DHCP server

  • shows clients in the network
  • lists IP address, Mac address and host name
  • highlights recently refreshed/added clients
  • assigns IP addresses 10 seconds later than usual DHCP servers
  • remembers addresses in the hosts.csv file.
  • can be configured to serve all DHCP options using Python

Contributions welcome!

Windows

You can install this software by downloading the release named Simple-DHCP-Server-Windows-X.Y.Z.zip file. Unpack the zip file, you will find an executable .exe file inside.

Linux

There are several ways to install this under Linux:

Tkinter

You can use the old Tkinter GUI:

sudo apt-get install python3 python3-tk
pipx install simple-dhcp-server

Related Work

This program was created to find Raspberry Pis in the network.

Changelog

These are the recent changes. If a version is not released, yet, it can still show up. You can view the realeases on GitHub.

1.0.2

  • Correct Install description
  • Create a different layout for Windows

1.0.1

  • Correct path for Windows release zip

1.0.0

  • Add QT Release
  • Build windows exe automatically
  • Publish to PyPI
  • Create GitHub Release
  • rename master branch to main
  • Renamed to "Simple DHCP Server"

0.9

  • Add icon to exe file and application
  • Add flatpak build information

0.8

  • Make text field expandable
  • Show error message if DHCP port cannot be accessed

0.7

  • Prevent duplicate assignment of IP addresses
  • Add sliders to the GUI

0.6

  • Use a queue
  • Run in Linux
  • Add install description
  • Add ability to bind to a fixed IP address

0.5

  • Fix issue with delay worker

0.4

  • Fix issue with delay worker
  • Add license

0.3

  • Also show old values
  • Random IP assignment when address space is full

0.2

  • Add .exe file
  • Add width and height

0.1

  • Mark new entries as yellow
  • Initial release

New Releases

When the source code is changed, create a new release.

  1. Log the changes: Edit the Changelog Section in
    • README.md
    • python_dhcp_server/flatpak/io.github.niccokunzmann.python_dhcp_server.xml
    git log # find changes
    git add README.md
    git commit -m"log changes"
    
  2. Create a new tag
    git tag 0.10
    git push origin 0.10
    
  3. Download the latest release.
    cd ~/Downloads
    wget -c 'https://github.com/niccokunzmann/python_dhcp_server/releases/download/0.9/python_dhcp_server_standalone_0.9.zip'
    
  4. Unzip it.
    rm -rf python_dhcp_server_standalone
    unzip python_dhcp_server_standalone_0.9.zip
    
  5. Replace the server directory.
    cd python_dhcp_server_standalone
    rm -r server
    cp -r ~/python_dhcp_server/server/ .
    rm -r server/__pycache__
    
  6. Zip the release.
    cd ..
    zip -9r python_dhcp_server_standalone_0.10.zip python_dhcp_server_standalone
    
  7. Upload the zip file to the pushed release.
  8. Head over to the Flathub metadata and create a new release.

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

simple_dhcp_server-1.0.2.tar.gz (99.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_dhcp_server-1.0.2-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file simple_dhcp_server-1.0.2.tar.gz.

File metadata

  • Download URL: simple_dhcp_server-1.0.2.tar.gz
  • Upload date:
  • Size: 99.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for simple_dhcp_server-1.0.2.tar.gz
Algorithm Hash digest
SHA256 3362b0dbdd968a31eeee8f8012539dfc182e09f7b245938ff57718e32102436e
MD5 7cc0b9eff6886a330db6e867c7342aa4
BLAKE2b-256 21c3cdb6d6bb689cda97eb70f911eb6c1b8f10bf9ef10bc6fde959180054b41a

See more details on using hashes here.

File details

Details for the file simple_dhcp_server-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for simple_dhcp_server-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9a4fc422dd24e8ba5dcf30a24e59684a6677539a2bcc523f0dd41b2978e917f8
MD5 334104fdf7361da3497b60ec77b1c457
BLAKE2b-256 1be0af3c3353617bc123f5a8a5e2cfe080f69c5fded3d543e3fd627807ccb181

See more details on using hashes here.

Supported by

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