2019-08-02 20:44:42 +00:00
|
|
|
//
|
|
|
|
// Created by lukas on 02.08.19.
|
|
|
|
//
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
2019-10-26 12:41:43 +00:00
|
|
|
#include <FileLogger.h>
|
2019-08-02 20:44:42 +00:00
|
|
|
#include <api/IPAPI.h>
|
|
|
|
#include <api/DynuAPI.h>
|
|
|
|
#include <api/TelegramAPI.h>
|
2019-10-23 07:24:35 +00:00
|
|
|
|
|
|
|
#include <chrono>
|
|
|
|
#include <thread>
|
2019-10-27 12:41:40 +00:00
|
|
|
#include <Logger.h>
|
2019-10-23 07:24:35 +00:00
|
|
|
|
2019-10-26 12:41:43 +00:00
|
|
|
#include <IPRefresher.h>
|
2019-08-02 20:44:42 +00:00
|
|
|
|
2019-10-23 07:24:35 +00:00
|
|
|
void IPRefresher::checkIPAdress(bool force) {
|
2019-10-26 12:41:43 +00:00
|
|
|
FileLogger logger;
|
2019-08-02 20:44:42 +00:00
|
|
|
|
|
|
|
IPAPI ipapi;
|
|
|
|
std::string ip = ipapi.getGlobalIp();
|
|
|
|
|
|
|
|
if (ip.empty()) {
|
|
|
|
//no internet connection
|
|
|
|
logger.logToLogfile("[WARNING] no internet connection");
|
2019-10-27 12:41:40 +00:00
|
|
|
Logger::warning("no internet connection");
|
2019-08-02 20:44:42 +00:00
|
|
|
} else {
|
|
|
|
std::string oldip = logger.readip();
|
|
|
|
|
2019-10-27 12:41:40 +00:00
|
|
|
if (oldip == ip && !force) {
|
|
|
|
Logger::message("no change -- ip: " + ip);
|
2019-08-02 20:44:42 +00:00
|
|
|
logger.logToLogfile(" [INFO] no change -- ip: " + ip);
|
|
|
|
} else {
|
|
|
|
logger.logToLogfile(" [INFO] ip changed! -- from :" + oldip + "to: " + ip);
|
2019-10-27 12:41:40 +00:00
|
|
|
Logger::message("ip changed! -- from :" + oldip + "to: " + ip);
|
2019-08-02 20:44:42 +00:00
|
|
|
|
|
|
|
DynuAPI dynu;
|
|
|
|
|
|
|
|
if (dynu.refreshIp(ip)) {
|
|
|
|
TelegramAPI tele;
|
2019-10-27 12:41:40 +00:00
|
|
|
tele.init("717213769:AAHan1nSXhUsxLJAN1Dv8Oc0z8wqwDdYPn4", "618154204");
|
2019-08-02 20:44:42 +00:00
|
|
|
tele.sendMessage(oldip + " moved to " + ip);
|
|
|
|
} else {
|
|
|
|
//error
|
|
|
|
logger.logToLogfile(" [ERROR] failed to write ip to dynu api!");
|
2019-10-27 12:41:40 +00:00
|
|
|
Logger::error("failed to write ip to dynu api!");
|
2019-08-02 20:44:42 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
logger.safeip(ip);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-10-23 07:24:35 +00:00
|
|
|
|
|
|
|
IPRefresher::IPRefresher() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
IPRefresher::IPRefresher(bool loop) {
|
2019-10-27 12:41:40 +00:00
|
|
|
Logger::message("startup of service");
|
|
|
|
while (loop) {
|
|
|
|
Logger::message("starting check");
|
2019-10-23 07:24:35 +00:00
|
|
|
checkIPAdress(false);
|
2019-10-26 12:41:43 +00:00
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(300000));
|
2019-10-23 07:24:35 +00:00
|
|
|
}
|
|
|
|
}
|