ipctl

command module
v0.0.0-...-023df52 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 20, 2022 License: MIT Imports: 11 Imported by: 0

README

ipctl

Listen to IP change and change your DNS' records dynamically

Table of content

Features

  • Lightweight - can easily run even on Raspberry Pi!
  • Easy to set up - ipctl can set up basic configuration and systemctl service itself, no editing needed
  • Painless - you don't have to worry about dynamic IP ever again!

Installation

Check out Releases for latest versions.

Or, you can download it directly with Go

go get github.com/Streamer272/ipctl@latest

But watch out, you have to add $HOME/go/bin/ to root path

Build from source
Requirements:
  • Go 17+

Clone the repository with git

git clone https://github.com/Streamer272/ipctl.git && cd ipctl

Install ipctl with install.sh script

bash ./install.sh

Quick start

Right after installing, you need to generate config file and systemctl service with

ipctl config init && ipctl service init

Make sure you run this command with root privileges

Config file is located in /etc/ipctl/config, you can see all current config files in use using

ipctl config

Service file will be stored in /lib/systemd/system/ipctl.service, you can find this path using

ipctl service

To make ipctl start every time you start your computer in background, you need to enable and start it using systemctl

systemctl enable --now ipctl

For those less familiar with systemctl, --now option starts the service automatically after enabling

Check out example configuration to get the idea

How does it work

Every interval (located in config file) milliseconds, a request on https://api.my-ip.io/ip.json is made, finding out current IP address. If IP address has changed, callback_file will be called with bash (be sure to put #!/usr/bin/bash on the first line of your callback file). Here, new IP will be provided as environmental variable IP (in python, you can read this value with os.getenv("IP")).

Mind that this service only runs if you are connected to the internet, so you don't have to worry about not having connection in your callback file.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL