Mikrotik แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฉแƒแƒ แƒ—แƒ•แƒ Telegram v 2.0-แƒ“แƒแƒœ

แƒงแƒ•แƒ”แƒšแƒแƒก แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒ˜แƒšแƒแƒชแƒแƒ•แƒ— แƒ“แƒฆแƒ”แƒกแƒแƒกแƒฌแƒแƒฃแƒšแƒก. แƒ”แƒก แƒ—แƒ”แƒ›แƒ แƒฏแƒแƒ‘แƒ˜แƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ แƒแƒช แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” 2016 แƒฌแƒ”แƒšแƒก แƒแƒฅ.

แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ˜ แƒแƒ  แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ, แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒ˜แƒกแƒแƒ, แƒ แƒแƒ› แƒแƒฎแƒšแƒ แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ›แƒงแƒ˜แƒกแƒ˜แƒ”แƒ แƒแƒ“, แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก Mikrotik-แƒจแƒ˜, แƒ•แƒชแƒ•แƒšแƒ˜แƒ— BotID-แƒก แƒ“แƒ ChatID-แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒจแƒ˜ แƒ“แƒ แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒœแƒ แƒ˜แƒ’แƒก. แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ โ€žแƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒโ€œ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒ–แƒ” (แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก).
"แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒ˜": 00:00:00
แƒ—แƒแƒ แƒ”แƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ”แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒงแƒ.

Telegram-v2

:delay 10
:global mtIdentity [/system identity get name];
:global botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:global myChatID "YYYYYY" ;
:local chatId 0;
:local messageId 0;


:local parse do={
  :local startLoc ([:find $content $variable -1] + [:len $variable] + 2);
  :local commaLoc ([:find $content "," $startLoc] - 1 + 1);
  :local braceLoc ([:find $content "}" $startLoc] - 1 + 1);
  :local endLoc $commaLoc;
  :local startSymbol [:pick $content $startLoc]
  :if ($braceLoc != 0 and ($commaLoc = 0 or $braceLoc < $commaLoc)) do={
    :set endLoc $braceLoc;
  };
  :if ($startSymbol = "{") do={
    :set endLoc ($braceLoc + 1);
  };
  :if ($quotas = true) do={
    :set startLoc ($startLoc + 1);
    :set endLoc ($endLoc - 1);
  }
  :if ($endLoc < $startLoc) do={
    :set endLoc ($startLoc + 1);
  };
  :local message [:pick $content $startLoc $endLoc]
  #:log info $message;
  :return $message;
}


:while ( true ) do={
  :do {
    #:log info "https://api.telegram.org/$botID/getUpdates?offset=$messageId&limit=1&allowed_updates=message&timeout=60";
    :tool fetch url=("https://api.telegram.org/$botID/getUpdates?offset=$messageId&limit=1&allowed_updates=message&timeout=60") dst-path="getUpdates";
    :local content [/file get [/file find name=getUpdates] contents] ;
    #:log info $content;
    :if ([:len $content] > 30) do={
      :set messageId ([$parse content=$content variable="update_id"] + 1)
      :local message [$parse content=$content variable="text" quotas=true]
      :local chat [$parse content=$content variable="chat"]
      :local chatId [$parse content=$chat variable="id"]      
      
      :if (($chatId = $myChatID) and ([/system script find name=$message] != "")) do={
        :system script run $message;
      } else={
        :tool fetch url=("https://api.telegram.org/$botID/sendmessage?chat_id=$chatId&text=$mtIdentity: Unknown command: $message") keep-result=no
      }
    }
  } on-error={}
};

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ”แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ: แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒกแƒฃแƒกแƒขแƒ˜ Mikrotik แƒแƒฉแƒ”แƒ แƒ”แƒ‘แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒคแƒ แƒ แƒ›แƒซแƒšแƒแƒ•แƒ แƒ”แƒ‘แƒ–แƒ” แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒจแƒ”แƒฃแƒฉแƒ”แƒ แƒ”แƒ‘แƒšแƒแƒ“.

แƒแƒ› แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ” แƒ•แƒ˜แƒกแƒ แƒแƒšแƒ” WatchDog-แƒ˜แƒก แƒงแƒแƒ•แƒแƒ แƒฏแƒ”แƒœแƒ˜. แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ•แƒšแƒ˜แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ–แƒ”. แƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒ˜ 5 แƒฌแƒฃแƒ—แƒ–แƒ”. แƒงแƒแƒ•แƒ”แƒš 5 แƒฌแƒฃแƒ—แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœแƒ˜ โ€žแƒ“แƒแƒ›แƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜โ€œ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒ“แƒ แƒ—แƒฃ แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ’แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒก.

WatchDogT.me

:global scriptname "t.me"
:if ([:len [/system script job find script=$"scriptname"]] > 0) do={
:log info "$scriptname Already Running - killing old script before continuing"
:foreach counter in=[/system script job find script=$"scriptname"] do={
/system script job remove $counter
}
}
/system script run $scriptname

แƒ˜แƒกแƒ”, แƒ“แƒ”แƒกแƒ”แƒ แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜ Mikrotik-แƒ˜แƒก แƒคแƒแƒ แƒฃแƒ›แƒ˜แƒ“แƒแƒœ แƒแƒ แƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜.
แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒก แƒŸแƒฃแƒ แƒœแƒแƒšแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒšแƒแƒ—แƒแƒจแƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒ— แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒก แƒงแƒแƒ•แƒ”แƒš 5 แƒฌแƒฃแƒ—แƒจแƒ˜, แƒ•แƒชแƒ•แƒšแƒ˜แƒ— BotID-แƒก แƒ“แƒ ChatID-แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ–แƒ”.

แƒจแƒ”แƒแƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ—-แƒจแƒ”แƒกแƒ•แƒšแƒ

:global lastTime
:global output
:global mtIdentity [/system identity get name];
:global botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:global myChatID "YYYYYY" ;

:local LogGet [ :toarray [ /log find topics~"critical" || message~"login failure" || message~"[Ff]ailure" ] ] ;
:local LogtLineCount [ :len $LogGet ] ;
if ($LogtLineCount > 0) do={
   :local currentTime "$[ /log get [ :pick $LogGet ($LogtLineCount -1) ] time ]";
   :if ([:len $currentTime] = 10 ) do={
      :set currentTime [ :pick $currentTime 0 10 ];
   }
   :set output "$currentTime - $[/log get [ :pick $LogGet ($LogtLineCount-1) ] message ]";
   :if (([:len $lastTime] < 1) || (([:len $lastTime] > 0) && ($lastTime != $currentTime))) do={
      :set lastTime $currentTime ;
         :tool fetch url=("https://api.telegram.org/$botID/sendmessage?chat_id=$myChatID&text="$mtIdentity" :  $output") keep-result=no
   }
}

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒก:

Mikrotik แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒฉแƒแƒ แƒ—แƒ•แƒ Telegram v 2.0-แƒ“แƒแƒœ

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ