Różnice
Różnice między wybraną wersją a wersją aktualną.
| Nowa wersja | Poprzednia wersja | ||
|
whois [2020/09/14 23:39] yasiu utworzono |
whois [2021/07/02 10:10] (aktualna) zbyszk01 Poprawiony tytuł i URL do whois |
||
|---|---|---|---|
| Linia 1: | Linia 1: | ||
| - | ====== whois / at.hs3.pl ====== | + | ====== whois.at.hsp.sh ====== |
| - | ^Zamieszany|[[user>not7cd|not7cd]], [[user>mw|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 94: | Linia 77: | ||
| ---- | ---- | ||
| - | Prawilny deployment na [[projekty:serwer_na_laptopie|Serwer na laptopie]]. | + | Prawilny deployment na [[squire|Serwer na laptopie]]. |
| --- //[[user>allgreed|allgreed]] 2018/04/25 23 z hakiem// | --- //[[user>allgreed|allgreed]] 2018/04/25 23 z hakiem// | ||
| Linia 107: | Linia 90: | ||
| dostęp tylko przez proxy ngnix'a | dostęp tylko przez proxy ngnix'a | ||
| --- //[[user>not7cd]] 2018/07/04 17:57// | --- //[[user>not7cd]] 2018/07/04 17:57// | ||
| + | |||
| + | ---- | ||
| + | Deployment na [[arthur]] -> [[https://whois.at.hsp.sh]]. | ||
| + | --- //[[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 | ||