Różnice
Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronach Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
projekty:whois [2018/03/05 02:01] mw [Whois] |
— (aktualna) | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
- | ====== Whois ====== | ||
- | ^Zamieszany|[[user>not7cd|not7cd]], [[user>mw|mw]] | | ||
- | ^Rozpoczęto|2018-01-12 | | ||
- | ^Status|W 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? | ||
- | - Mikrotik | ||
- | - Flask? | ||
- | |||
- | Skrypt dla Mikrotik z RouterOS >= 6.39 | ||
- | <code> | ||
- | # 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!"; | ||
- | } | ||
- | </code> | ||
- | |||
- | Skrypt wysyła dane w formacie json: | ||
- | <code> | ||
- | [{"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"}] | ||
- | </code> | ||
- | ===== Log ===== | ||
- | Proof of Concept: skrypt na mikrotiku komunikujący się z aplikacją | ||
- | --- //2018/03/03 5:36// | ||
- | |||
- | ---- | ||
- | |||
- | |||
- | ===== Podobne projekty ===== | ||
- | * http://wiki.hswro.org/projects/wlokalu.hswro.org | ||
- | * https://github.com/HackerspaceKRK/WHOis-HS | ||
- | * https://wiki.hackerspace.pl/projects:checkinator |