انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: Script بررسی ارتباط با Internet  (دفعات بازدید: 1131 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
Script بررسی ارتباط با Internet
« : 29 آبان 1394، 08:54 ب‌ظ »
سلام دوستان

چند وقته بعضی مواقعه دچار مشکل Internet میشم و واقعا رو اعصابه.

مثلا بعضی مواقعه که با مرورگر دارم Download میکنم، ارتباط قطع میشه و فکر میکنم که مشکل از Server یا Tor هست.

برای همین Script نوشتم که ارتباط رو بررسی میکنه و با پخش صدا اطلاع میده که قطع شد یا وصل شد.

#!/bin/bash

###################################################
# این برنامه در زمان اجرا بررسی می کند که آیا شما به Internet وصل هستید یا خیر؟ ( با بررسی دسترسی به https://www.google.com )
# اگر ارتباط برقرار شود، پیغام موفقیت نمایش داده میشود. در صورتی که قابلیت پخش صدا فعال باشد، صدایی که برای ارتباط موفق تنظیم شده است پخش میشود.
# اگر ارتباط برقرار نشود، پیغام عدم ارتباط نمایش داده میشود. در صورتی که قابلیت پخش صدا فعال باشد، صدایی که برای ارتباط ناموفق تنظیم شده است پخش میشود.
# این کار هر چند ثانیه تکرار میشود و پایانی ندارد، مگر برنامه را متوقف کنید.
###################################################
# در صورت فعال بودن صدا، پس از هر بار بررسی ارتباط:
# در صورت وصل بودن یا وصل شدن ارتباط فقط یک بار صدا پخش میشود.
# در صورت قطع بودن یا قطع شدن ارتباط پس از پخش صدا به تعداد دفعات تنظیم شده در nosound صدا پخش نمیشود.
###################################################

delayforConnect="60" # هر چند ثانیه بررسی کردن ارتباط در صورت موفق بودن
delayforDisConncet="5" # هر چند ثانیه بررسی کردن ارتباط در صورت قطع بودن
sound="yes" # صدا پخش شود؟
volume="100" # میزان بلندی صدا به درصد
soundforConnect="./connect.ogg" # صدا پخش شود؟
soundforDisConncet="./disconnect.ogg" # صدا پخش شود؟
nosound="12" # هر چندبار صدا پخش نشود؟

################################################## از اینجا به بعد را دست نزنید. ##################################################

isconnect="no" # متغیر موقت برای بررسی اینکه ارتباط برقرار است یا نه؟
dontpalysound="0" # متغیر موقت برای پخش  نشدن صدا. در صورت 0 بودن صدا پخش می شود
if [ "$volume" > "100" ]; then volume="100"; fi

while [ true = true ] # حلقه نامحدود
do
clear # پاک سازی خط فرمان

wget -q --spider https://www.google.com # بررسی ارتباط

if [ $? -eq 0 ] # اگر مقدار 0 بازگرداند
then
echo "Internet is connected!" # نمایش پیغام برقرار بودن ارتباط

if [ "$sound" = "yes" ] && [ "$isconnect" = "no" ] # اگر پخش صدا فعال بود و ارتباط قطع شده بود
then
dontpalysound="0"
isconnect="yes"
paplay --volume=$(($volume*655)) $soundforConnect # پخش صدا برای ارتباط موفق
fi

delay_counter=$delayforConnect # متغیر موقت برای شمارش معکوس
while [ "$delay_counter" != "0" ] # تا زمان 0 شدن متغیر حلقه ادامه دارد
do
tput cup 1 0 # تغییر مکان خروجی متن به خط اول خط فرمان
sleep 1 # ایجاد تاخیر به ثانیه
((delay_counter --)) # کم کردن مقدار از متغیر شمارش معکوس
echo "# I will retry internet connection after $delay_counter seconds." # نمایش پیغام شمارش معکوش
done
else
echo "Internet connection droped! Check your internet connection!" # نمایش پیغام برقرار نبودن ارتباط

if [ "$sound" = "yes" ] && [ "$dontpalysound" = "0" ] # اگر پخش صدا فعال بود و متغیر پخش نشدن صدا 0 بود
then
dontpalysound=$nosound
isconnect="no"
paplay --volume=$(($volume*655)) $soundforDisConncet # پخش صدا برای ارتباط قطع
fi

delay_counter=$delayforDisConncet # متغیر موقت برای شمارش معکوس
while [ "$delay_counter" != "0" ]
do
tput cup 1 0 # تغییر مکان خروجی متن به خط اول خط فرمان
sleep 1 # ایجاد تاخیر به ثانیه
((delay_counter --)) # کم کردن مقدار از متغیر شمارش معکوس
echo "# Check your internet connection!! I will retry after $delay_counter seconds." # نمایش پیغام شمارش معکوش
done

((dontpalysound --))  # کم کردن مقدار از متغیر پخش نکردن صدا
fi
done

تا جایی که تونستم برای هر قسمت توضیحات نوشتم، امیدوارم خوب باشه.

اجرا کردن Script هم که همه بلدید  ;D

آفلاین فاروق

  • Hero Member
  • *
  • ارسال: 992
  • جنسیت : پسر
  • <شعار>این یک شعار است</شعار>
    • تارنمای فاروق
پاسخ : Script بررسی ارتباط با Internet
« پاسخ #1 : 29 آبان 1394، 09:04 ب‌ظ »
اگه اینو واسه حلقه مینوشتی بهتر بود
while true; ...
http://pcworms.blog.ir
بعد از بررسی پست های قدیمیم، فکر میکنم یک عذرخواهی بدهکارم! معذرت میخوام و اگر اشتباه کردم مستقیم و روشن راهنمایی کنید تا تکرار نکنم.
کانال IRC

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
پاسخ : Script بررسی ارتباط با Internet
« پاسخ #2 : 29 آبان 1394، 09:29 ب‌ظ »
اگه اینو واسه حلقه مینوشتی بهتر بود
while true; ...
فرقی نداره.

مهم کار کردن هست.

آفلاین فاروق

  • Hero Member
  • *
  • ارسال: 992
  • جنسیت : پسر
  • <شعار>این یک شعار است</شعار>
    • تارنمای فاروق
پاسخ : Script بررسی ارتباط با Internet
« پاسخ #3 : 29 آبان 1394، 10:26 ب‌ظ »
روی کارایی تأثیر نداشت اما خوانا تر و کوتاه تر بود.
http://pcworms.blog.ir
بعد از بررسی پست های قدیمیم، فکر میکنم یک عذرخواهی بدهکارم! معذرت میخوام و اگر اشتباه کردم مستقیم و روشن راهنمایی کنید تا تکرار نکنم.
کانال IRC