سلام ، چند وقتی بود که می خواستم اتصال و قطع اتصال کاربران میکروتیک را به صورت ارسال آلارم در یک bot تلگرامی داشته باشم امروز قصد آموزش این کار را دارم . ابتدا شما به یک Bot در تلگرام نیاز دارید که میتوانید آن را با ربات @BotFather بسازید و Token آنرا نگه دارید
سپس به Bot خود با آیدی تلگرام خودتان پیام دهید و آدرس زیر را در مرورگرتان باز کنید و باید با صفحه ای مانند تصویر زیر روبه رو شوید
https://api.telegram.org/bot{telegram-robot-token}/getupdates
قسمت Chat ID شماره مخصوص آیدی شماست که Bot با آن میتواند با آیدی شما پیام دهد (برای پیام دادن با افراد دیگر شما به Chat ID آنها نیاز دارید) و در آخر با استفاده از این کد میتوانید در میکروتیک به آیدی تلگرامتان پیام دهید این کد را در قسمت های مختلف میکروتیک که قابلیت نوشتن script در آنها فعال میباشد میتوانید استفاده کنید
/tool fetch url="https://api.telegram.org/bot{telegram-robot-token}/sendmessage?chat_id={chat-id}&text=test" keep-result=no
تا اینجای کار ساخت Bot تمام شد حالا باید اسکریپت ارسال پیغام در زمان اتصال کاربر و قطع اتصال کاربر را بنویسیم ، برای این کار وارد روتر میکروتیک میشیم قسمت PPP و سپس سربرگ profiles در این قسمت پروفایل کاربرانی که می خواهید آلارم برای اتصال آنها ارسال شود را باز می کنیم ، به دوره های آموزش میکروتیک مجموعه توسینسو یا بصورت ویژه به دوره آموزش MTCNA میکروتیک در این لینک مراجعه کند.
سپس در قسمت Script کد های زیر را وارد میکنیم
در قسمت On UP کد مربوط به آلارم اتصال کاربر را قرار می دهیم
#SCRIPT LOGIN
:local nama "$user";
:local bot "BOT ID";
:local chat "CHAT ID";
:local ips [/ppp active get [find name=$nama] address];
:local up [/ppp active get [find name=$nama] uptime];
:local caller [/ppp active get [find name=$nama] caller-id];
:local service [/ppp active get [find name=$nama] service];
:local active [/ppp active print count];
:local datetime "Date: $[/system clock get date] %0ATime: $[/system clock get time]";
:local lastdisc [/ppp secret get [find name=$user] last-disconnect-reason];
:local lastlogout [/ppp secret get [find name=$user] last-logged-out];
:local lastcall [/ppp secret get [find name=$user] last-caller-id];
/tool fetch url="https://api.telegram.org/bot$bot/sendMessage?chat_id=$chat &text=\E2\9C\85 VPN-USER LOGIN%0A$datetime%0AUser: $user%0AIP Client: $ips%0ACaller ID: $caller%0AUptime: $up%0ATotal Active: $active Client%0AService: $service%0ALast Disconnect Reason: $lastdisc %0ALast Logout: $lastlogout %0ALast Caller ID: $lastcall" mode=http keep-result=no;
در قسمت On Down کد مربوط به آلارم قطع اتصال کاربر را قرار می دهیم
#SCRIPT LOGOUT
:local bot "BOT ID";
:local chat "CHAT ID";
:local lastdisc [/ppp secret get [find name=$user] last-disconnect-reason];
:local lastlogout [/ppp secret get [find name=$user] last-logged-out];
:local lastcall [/ppp secret get [find name=$user] last-caller-id];
:local active [/ppp active print count];
:local datetime "Date: $[/system clock get date] %0ATime: $[/system clock get time]";
/tool fetch url="https://api.telegram.org/bot$bot/sendmessage\?chat_id=$chat&text=\E2\9D\8CVPN-USER LOGOUT %0A$datetime%0AUSER: $user%0ALast Disconnect Reason: $lastdisc %0ALast Logout: $lastlogout %0ALast Caller ID: $lastcall %0ATotal active: $active Client" keep-result=no;
نتیجه نهایی به صورت زیر می باشد
در صورتی که پیغام ها ارسال نشد آدرس سرور تلگرام api.telegram.org را به یک روشی در روتر خود به اینترنت ازاد متصل کنید تا پیغام ها بدونه مشکل ارسال گردد.
با استفاده از static route می توانید این کار را انجام دهید
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود