Skip to content
DHCP client disclosing less identifying information.
Python Shell Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
apparmor.d Add apparmor to Makefile and change path Sep 10, 2017
dhcpcanon Bump to version 0.8.5 Apr 12, 2018
docs Replace about by index as about is not anymore needed Apr 9, 2018
man Add man for dhcpcanon-script. Sep 11, 2017
sbin Add apparmor profile Sep 10, 2017
systemd Add systemd link conf to randomize MAC Sep 19, 2017
tmpfiles.d Add possibility systemd service from Sep 7, 2017
.editorconfig Fix PEP8 style Jun 1, 2017
.readthedocs.yml Do not use doc dependencies Apr 1, 2018
.travis.yml Instally travis dependencies using setup Apr 7, 2018
AUTHORS initial import Jul 23, 2016
CHANGELOG.rst Restore self.my_send for sendp. Jun 27, 2017 Add duplicated contributing doc in md to show in gh issues Jun 5, 2017
LICENSE Include also *.rst files Sep 11, 2017
Makefile Update Makefile Apr 15, 2018
README.rst Replace md to rst so that about can be updated from README Apr 1, 2018 Add install script Feb 17, 2018
requirements.txt Modifications related to requirements: May 25, 2017
requirements_dev.txt Modifications related to requirements: May 25, 2017
setup.cfg Change desription to rst file Apr 9, 2018 Group and cleanup requirements Apr 7, 2018
tox.ini Use requirements, cleanup Apr 7, 2018


dhcpcanon - DHCP anonymity profile

PyPI Build Status Coverage Status Documentation Status CII Best Practices

DHCP client disclosing less identifying information.

Python implementation of the DHCP Anonymity Profile (RFC7844) designed for users that wish to remain anonymous to the visited network minimizing disclosure of identifying information.


This implementation uses the Python Scapy Automata

What is the Anonymity Profile?

As the RFC7844 stats:

Some DHCP options carry unique identifiers. These identifiers can enable device tracking even if the device administrator takes care of randomizing other potential identifications like link-layer addresses or IPv6 addresses. The anonymity profiles are designed for clients that wish to remain anonymous to the visited network. The profiles provide guidelines on the composition of DHCP or DHCPv6 messages, designed to minimize disclosure of identifying information.

What is DHCP?

From Wikipedia:

The Dynamic Host Configuration Protocol (DHCP) is a standardized network protocol used on Internet Protocol (IP) networks. The DHCP is controlled by a DHCP server that dynamically distributes network configuration parameters, such as IP addresses, for interfaces and services. A router or a residential gateway can be enabled to act as a DHCP server. A DHCP server enables computers to request IP addresses and networking parameters automatically, reducing the need for a network administrator or a user to configure these settings manually. In the absence of a DHCP server, each computer or other device (eg., a printer) on the network needs to be statically (ie., manually) assigned to an IP address.


A more extensive online documentation is available in Read the docs. The documentation source is in this repository.

Visit DHCPAP for an overview of all the repositories related to the RFC7844 implementation work.


See Installation and Running


You can download this project in either zip or tar formats.

You can also clone the project with Git by running:

git clone

Bugs and features

If you wish to signal a bug or report a feature request, please fill-in an issue on the dhcpcanon issue tracker.

Current status

WIP, still not recommended for end users. Testers welcomed.



dhcpcanon is copyright 2016-2018 by juga ( juga at riseup dot net) and is licensed by the terms of the MIT license.


To all the persons that have given suggestions and comments about this implementation, the authors of the RFC 7844, the Prototype Fund Project of the Open Knowledge Foundation Germany and the Federal Ministry of Education and Research who partially funds this work.

You can’t perform that action at this time.