39 lines
886 B
C++
39 lines
886 B
C++
//
|
|
// Created by Мустафаев Селим Мустафаевич on 01.01.2024.
|
|
//
|
|
|
|
#include "DnsmasqSource.h"
|
|
#include <exception>
|
|
#include <sstream>
|
|
#include <iostream>
|
|
|
|
DnsmasqSource::DnsmasqSource() {
|
|
_leases.open("/var/lib/misc/dnsmasq.leases");
|
|
if(_leases.fail()) {
|
|
throw std::runtime_error("failed to open leases file");
|
|
}
|
|
}
|
|
|
|
std::vector<prometheus::Labels> DnsmasqSource::readLeases() {
|
|
_leases.clear();
|
|
_leases.seekg(0);
|
|
|
|
std::string line, time, mac, ip, host, id;
|
|
std::stringstream ss;
|
|
std::vector<prometheus::Labels> result;
|
|
|
|
while(std::getline(_leases, line)) {
|
|
ss << line;
|
|
ss >> time >> mac >> ip >> host >> id;
|
|
result.push_back({
|
|
{"time", time},
|
|
{"mac", mac},
|
|
{"ip", ip},
|
|
{"host", host},
|
|
{"id", id}
|
|
});
|
|
}
|
|
|
|
return result;
|
|
}
|