2023-01-05 17:51:39 +00:00
|
|
|
# Public IP tracker
|
2023-01-05 08:49:25 +00:00
|
|
|
|
2023-01-05 17:51:39 +00:00
|
|
|
[![Build Status](https://drone.faercol.me/api/badges/faercol/public-ip-tracker/status.svg)](https://drone.faercol.me/faercol/public-ip-tracker)
|
|
|
|
|
|
|
|
|
|
|
|
Telegram bot that detects changes to the device's public IP. This is particularily useful when
|
|
|
|
the device is handled by an ISP that does not provide a static public IP, such as a home device.
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
### Automatic public IP detection and monitoring
|
|
|
|
|
|
|
|
Upon startup, the current public IP is detected, and a status message is sent to a specific Telegram
|
|
|
|
channel with the relevant information.
|
|
|
|
|
|
|
|
> Insert example message here
|
|
|
|
|
|
|
|
When running as a daemon, the program automatically monitors the current public IP adress for changes.
|
|
|
|
If the IP changes for some reason, then the new updated adress is sent to the specific Telegram
|
|
|
|
channel.
|
|
|
|
|
|
|
|
> Insert example message here
|
|
|
|
|
|
|
|
### On-demand public IP
|
|
|
|
|
|
|
|
The relevant channel is monitored during the program execution. This allows the user to send a
|
|
|
|
command to the bot in order to get the current public IP on-demand.
|
|
|
|
|
|
|
|
> Insert example here
|
2023-01-28 14:11:36 +00:00
|
|
|
|
|
|
|
|
|
|
|
## Deploy
|
|
|
|
|
|
|
|
### Configuration file
|
|
|
|
|
|
|
|
For now, the program is configured through a JSON configuration file. Here is a sample :
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"telegram": {
|
|
|
|
"token": "<your_bot_token>",
|
|
|
|
"channel_id": 9999999
|
|
|
|
},
|
2023-02-04 17:14:23 +00:00
|
|
|
"polling_frequency": 5,
|
|
|
|
"log": {
|
|
|
|
"level": "info"
|
2023-03-12 13:12:48 +00:00
|
|
|
},
|
|
|
|
"export": {
|
|
|
|
"mode": "native
|
2023-02-04 17:14:23 +00:00
|
|
|
}
|
2023-01-28 14:11:36 +00:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Docker
|
|
|
|
|
|
|
|
You can use the provided Dockerfile to build your own image.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker build -t public-ip-tracker .
|
|
|
|
```
|
|
|
|
|
|
|
|
You can then use the provided configuration file sample, and provide it to the program using the
|
|
|
|
`/config` volume
|
|
|
|
|
|
|
|
> I might add support for environment variables in the future.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker run -it -v /path/to/your/dir/with/json/file:/config public-ip-tracker
|
|
|
|
```
|