DDyn is a dynamic DNS updater application designed to automatically update DNS records when the public IP address changes. The application leverages machine learning to predict IP changes and monitor connectivity, ensuring reliable updates to DNS services.
- Dynamic DNS Updates: Automatically updates DNS records when the public IP address changes using DNS-O-Matic as the provider. This allows users to manage multiple DNS records across various services from a single interface.
- Machine Learning Predictions: Utilizes machine learning models to predict IP changes based on historical data.
- Anomaly Detection: Identifies unusual patterns in IP changes to enhance reliability.
- Command-Line Interface: Provides a simple CLI for managing updates and models.
-
Clone the repository:
git clone https://github.com/iap/ddyn.git cd ddyn
-
Create and activate a virtual environment:
python -m venv .venv source .venv/bin/activate # Linux/Mac # or .venv\Scripts\activate # Windows
-
Install the required dependencies:
pip install -r requirements.txt
-
Configure the environment variables:
cp .env.example .env # Edit .env with your DNS-O-Matic credentials and other settings
-
Start the DNS updater:
python -m src.main
-
Manage machine learning models using the CLI:
python -m src.cli train # Train the ML models python -m src.cli status # Check model status python -m src.cli predict # Get predictions
- Environment Variables: Configure your
.env
file with the following variables:DNSOMATIC_USERNAME=your_username DNSOMATIC_PASSWORD=your_password DNSOMATIC_HOSTNAME=your_hostname
- The application uses machine learning models to predict IP changes and enhance connection reliability.
- Current models include:
- Random Forest Classifier: For predicting IP changes based on historical data.
- Isolation Forest: For detecting anomalies in IP change patterns.
This project is licensed under the GNU General Public License (GPL) Version 3. See the LICENSE file for details.