Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lily-osp/dns-mixer
Turn your ESP32/8266 into a DNS mixer to provide dynamic DNS resolution using multiple DNS servers
https://github.com/lily-osp/dns-mixer
dns-server esp32 esp8266 internet-positif micropython
Last synced: about 1 month ago
JSON representation
Turn your ESP32/8266 into a DNS mixer to provide dynamic DNS resolution using multiple DNS servers
- Host: GitHub
- URL: https://github.com/lily-osp/dns-mixer
- Owner: lily-osp
- License: mit
- Created: 2024-01-22T21:47:42.000Z (11 months ago)
- Default Branch: mas
- Last Pushed: 2024-01-27T08:59:40.000Z (11 months ago)
- Last Synced: 2024-08-21T15:31:04.028Z (4 months ago)
- Topics: dns-server, esp32, esp8266, internet-positif, micropython
- Language: Python
- Homepage:
- Size: 51.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DNS Mixer
Welcome to DNS-mixer! This project handles DNS requests and forwards them to multiple DNS providers, ensuring reliability and redundancy in DNS resolution.
## Table of Contents
1. [Introduction](#introduction)
2. [Requirements](#requirements)
3. [Configuration](#configuration)
- [WiFi Configuration](#wifi-configuration)
- [DNS Providers](#dns-providers)
4. [Usage](#usage)
- [Connecting to WiFi](#connecting-to-wifi)
- [Handling DNS Requests](#handling-dns-requests)
5. [Troubleshooting](#troubleshooting)
6. [Contributing](#contributing)
7. [License](#license)## Introduction
DNS-mixer is a Python-based DNS forwarding tool designed to provide flexibility and resilience by dynamically switching between multiple DNS providers. This project aims to offer a reliable DNS resolution mechanism.
## Requirements
- esp8266/esp32 device with MicroPython support. [read more..](setup/server.md)
- Network connectivity between the esp8266/esp32 and the devices making DNS requests [read more..](setup/otherdevices.md)## Configuration
### WiFi Configuration
Adjust the WiFi settings in the code to match your network credentials.
```python
wifi_ssid = "your_wifi_ssid"
wifi_password = "your_wifi_password"
static_ip = "your_static_ip"
```### DNS Providers
Modify the list of DNS providers to suit your preferences.
```python
dns_providers_ipv4 = ["9.9.9.9", "149.112.112.112", "1.0.0.1","94.140.14.14", "1.1.1.1", "8.8.8.8"]
```## Usage
### Connecting to WiFi
The code includes a function to connect to WiFi. Ensure the esp8266/esp32 is within range of the WiFi network.
```python
connect_to_wifi()
```### Handling DNS Requests
The main function `handle_dns_request` is responsible for processing DNS requests, forwarding them to a randomly chosen DNS provider, and handling LED indications.
```python
handle_dns_request(data, addr)
```## Troubleshooting
If you encounter issues, refer to the troubleshooting section in the code. Enable debugging prints to gain insights into the code execution.
## Contributing
Feel free to contribute to this project by submitting issues or pull requests. Your feedback and improvements are highly appreciated.
## License
This project is licensed under the [MIT License](LICENSE).