صادق ملائی
System Administrator

مانیتورینگ کاربران میکروتیک در زمان اتصال و قطع اتصال توسط تلگرام

سلام ، چند وقتی بود که می خواستم اتصال و قطع اتصال کاربران میکروتیک را به صورت ارسال آلارم در یک bot تلگرامی داشته باشم امروز قصد آموزش این کار را دارم . ابتدا شما به یک Bot در تلگرام نیاز دارید که میتوانید آن را با ربات @BotFather بسازید و Token آنرا نگه دارید

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

1

سپس به 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 در این قسمت پروفایل کاربرانی که می خواهید آلارم برای اتصال آنها ارسال شود را باز می کنیم

مانیتورینگ کاربران میکروتیک در زمان اتصال و قطع اتصال توسط تلگرام

سپس در قسمت 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 می توانید این کار را انجام دهید

مانیتورینگ کاربران میکروتیک در زمان اتصال و قطع اتصال توسط تلگرام



نظرات