Różnice
Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronach Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
whois [2020/09/16 00:19] yasiu |
whois [2021/07/02 10:10] zbyszk01 Poprawiony tytuł i URL do whois |
||
---|---|---|---|
Linia 3: | Linia 3: | ||
^Zamieszany|[[user>not7cd]], [[user>mw]] | | ^Zamieszany|[[user>not7cd]], [[user>mw]] | | ||
^Rozpoczęto|2018-01-12 | | ^Rozpoczęto|2018-01-12 | | ||
- | ^Status|{{tag>projekty:skończony projekty:stoi}} Działa na [[http://at.hs3.pl/|at.hs3.pl]] | | + | ^Status|{{tag>projekty:skończony projekty:stoi}} Działa na [[https://whois.at.hsp.sh/] | |
^Repo |https://github.com/hs3city/whois | | ^Repo |https://github.com/hs3city/whois | | ||
^Tagi |{{tag>projekt usługa serwis}}| | ^Tagi |{{tag>projekt usługa serwis}}| | ||
Linia 25: | Linia 25: | ||
- <del>Nie panikuj kontener z botem wolno wstaje</del> | - <del>Nie panikuj kontener z botem wolno wstaje</del> | ||
- Panikuj, [[spotty-kiwi]] nie żyje, <del>napraw, po dostęp uderzaj do [[user>not7cd]]</del> naprawiane | - Panikuj, [[spotty-kiwi]] nie żyje, <del>napraw, po dostęp uderzaj do [[user>not7cd]]</del> naprawiane | ||
- | - Wykorzystaj endpoint http://at.hs3.pl/api/now w swoim projekcie | + | - Wykorzystaj endpoint http://whois.at.hsp.sh/api/now w swoim projekcie |
===== Opis ===== | ===== Opis ===== | ||
Linia 33: | Linia 33: | ||
- Serwer zbiera informacje o urządzeniach i ich właścicielach | - Serwer zbiera informacje o urządzeniach i ich właścicielach | ||
- Serwer wystawia jeden JSON GET z aktywnością z ostatnich 30 minut | - Serwer wystawia jeden JSON GET z aktywnością z ostatnich 30 minut | ||
- | - [[https://glitch.com/edit/#!/spotty-kiwi|Slack bot]] wysyła zapytanie na at.hs3.pl gdy wywołany | + | - [[https://glitch.com/edit/#!/spotty-kiwi|Slack bot]] wysyła zapytanie na whois.at.hsp.sh gdy wywołany |
- | Skrypt dla Mikrotik z RouterOS >= 6.39 | + | [[https://github.com/hspsh/whois/blob/master/helpers/mikrotik_script|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. | + | FIXME Skrypt należy przepisać żeby uploadował surowe dane, a ich procesowanie trzeba przerzucić na aplikację w Pythonie. |
- | :put "Get DHCP leases"; | + | |
- | :local leases ""; | + | FIXME (Prawdopodobnie) przez konfigurację Mikrotika skrypt nie może połączyć się z whoisem używając publicznego adresu. |
- | :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 parametrze data sformatowane do json: | Skrypt wysyła dane w parametrze data sformatowane do json: | ||
Linia 72: | Linia 45: | ||
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"}] | 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"}] | ||
</code> | </code> | ||
+ | |||
+ | Testowa komenda: | ||
+ | <code> | ||
+ | curl -X POST -H "User-Agent: Mikrotik/6.x Fetch" -d '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"}]' https://whois.at.hsp.sh/api/last_seen | ||
+ | </code> | ||
+ | |||
+ | ===== Uwagi ===== | ||
+ | |||
+ | Proces aplikacji musi mieć uprawnienia do tworzenia plików w folderze z bazą danych (SQLite tworzy pliki tymczasowe). Do dzisiaj problem ten został napotkany podczas 2 migracji. | ||
+ | |||
===== Log ===== | ===== Log ===== | ||
Proof of Concept: skrypt na mikrotiku komunikujący się z aplikacją | Proof of Concept: skrypt na mikrotiku komunikujący się z aplikacją | ||
Linia 109: | Linia 92: | ||
---- | ---- | ||
- | Deployment na [[arthur]]. | + | Deployment na [[arthur]] -> [[https://whois.at.hsp.sh]]. |
--- //[[user>yasiu]] 2020/09/01 // | --- //[[user>yasiu]] 2020/09/01 // | ||
+ | |||
+ | ---- | ||
+ | Skrypt na Mikrotiku został poprawiony i whois znowu działa w lokalu na Do Studzienki. | ||
+ | --- //[[user>michal]] 2020/09/29 // | ||
===== Podobne projekty ===== | ===== Podobne projekty ===== | ||
* http://wiki.hswro.org/projects/wlokalu.hswro.org | * http://wiki.hswro.org/projects/wlokalu.hswro.org | ||
* https://github.com/HackerspaceKRK/WHOis-HS | * https://github.com/HackerspaceKRK/WHOis-HS | ||
* https://wiki.hackerspace.pl/projects:checkinator | * https://wiki.hackerspace.pl/projects:checkinator |