To jest stara wersja strony!


Whois

Zamieszanynot7cd, mw
Rozpoczęto2018-01-12
StatusW trakcie

Ogólnie fajnie by było wiedzieć czy ktoś jest w hs'ie. Aktualnie jest działający skrypt dla mikrotika, który wysyła co jakiś czas POST'a do bazy danych po stronie serwera. Stack?

  1. Mikrotik
  2. Flask?

Skrypt dla Mikrotik z RouterOS >= 6.39

# Get DHCP leases records and send selected fields (MAC ADDRESS, HOST NAME, LAST SEEN and STATUS) to a webservice via POST.
:put "Get DHCP leases";
:local leases "";
:foreach i in=[/ip dhcp-server lease find] do={ 
  :local dhcp [/ip dhcp-server lease get $i] 
  :local client "\"mac\":\"$($dhcp->"active-mac-address")\",\"name\":\"$($dhcp->"host-name")\",\"last\":\"$($dhcp->"last-seen")\",\"status\":\"$($dhcp->"status")\"";
  :set $leases ($leases, $client);
}
:local json "[";
:local first true;
:foreach k,v in $leases do={
  if ([:len $v] > 0) do={
    if ($first = true) do={
     :set $json ($json .  "{" . $v . "}");
    } else={
      :set $json ($json . ",{" .  $v . "}");
    };
    :set $first false;
  }
}
:set $json ($json."]");
:local data ("data=" . $json);
:do {
  :put "Send DHCP leases";
  /tool fetch mode=http url="http://webservice" keep-result=yes dst-path="sendleases.txt" http-method="post" http-data=$data;
} on-error={
  :put "Send DHCP leases failed!";
  log warning "Send DHCP leases failed!";
}

Skrypt wysyła dane w parametrze data sformatowane do json:

data=[{"mac":"11:22:33:44:55:66","name":"Dom","last":"50w6d16h1m10s","status":"waiting"},{"mac":"AA:BB:CC:DD:EE:FF","name":"HS","last":"4d1h58m8s","status":"bound"}]

Log

Proof of Concept: skrypt na mikrotiku komunikujący się z aplikacją — 2018/03/03 5:36


Podobne projekty

  • projekty/whois.1520213144.txt.gz
  • ostatnio zmienione: 2020/09/24 20:27
  • (edycja zewnętrzna)