ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 3 از 3
  1. #1
    2008/01/16
    رشت
    857
    10

    پهنای باند باقیمانده ؟

    درود به همه دوستان

    ماه قبل پهنای باند ADSL ام بی هوا تموم شد :cry:
    شرکت ADSL م هم راه درستی برای نشون دادن پهنای باند نداده

    خلاصه آستینارو زدم بالا گفتم که یه کاری بکنم.
    از سر بیکاری و تفریح اسکریپت سادهآ*ای نوشتم که پهنای باند مصرفی رو لاگ کنه.

    لازم به توضیحه که این تقریبا اولین اسکریپت تقریبا به درد بخوریه که نوشتم ، ایرادی چیزی داشت به بزرگی خودتون ببخشید !

    من معولا با وایرلس لپ تاپ وصل میشم به مودم ADSL ام
    ایده اولیم این بود که بیام و مقدار TX/RX عبوری از وایرلس لپآ*تاپ رو لاگ کنم.
    ولی خب اگر یه موقع با سیم وصل شدم با اگه یه موقع با کامپیوتر رومیزی کار کردم چی ! اون موقع که چیزی ثبت نمیشه

    به این فکر افتادم که مقدار TX/RX اینترفیس ADSL مودمو لاگ کنم.
    دیده بودم که توی نمایش webbase مودم مقدار مصرف نشون داده میشه.
    یه تلنت به مودم کردم و با اجرای دستور ifconfig دیدم بله ، چه خبره !
    یه اینترفیس بنام ppp0 وجود داشت که مصرفش با نمایش webbase تطابق داشت .
    IP ون هم به همین اینترفیس اختصاص داشت .

    کد:
    # ifconfig
    br0   Link encap:Ethernet HWaddr 00:1E:58:82:3F:E9 
         ....
         RX bytes:11583219 (11.0 Mb) TX bytes:158654804 (151.3 Mb)
    
    br1   Link encap:Ethernet HWaddr 00:00:00:00:00:00 
         ....
         RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
    
    eth0   Link encap:Ethernet HWaddr 00:1E:58:82:3F:E9 
         ....
         RX bytes:0 (0.0 b) TX bytes:43852 (42.8 kb)
    
    lo    Link encap:Local Loopback 
         ....
         RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
    
    nas0   Link encap:Ethernet HWaddr 00:1E:58:82:3F:E9 
         ....
         RX bytes:157433982 (150.1 Mb) TX bytes:13096979 (12.4 Mb)
    
    ppp0   Link encap:Point-Point Protocol 
         inet addr:89.144.179.251 P-t-P:89.144.179.2 Mask:255.255.255.255
         UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 ASYMMTU:1500
         RX packets:155336 errors:0 dropped:0 overruns:0 frame:0
         TX packets:118097 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:156113132 (148.8 Mb) TX bytes:9142981 (8.7 Mb)
    
    wlan0  Link encap:Ethernet HWaddr 00:1E:58:82:3F:EA 
         ....
         RX bytes:9817847 (9.3 Mb) TX bytes:158654804 (151.3 Mb)


    خب ، پس به اینجا رسیدم که مقدار TX/RX اینو از دل مودم بکشم بیرون و توی یه فایل ذخیره کنم . ولی چطوری ؟

    خب کار زیاد مشکلی نبود ، کافی بود بهش تلنت بشه ، یوزر/پسورد داده بشه ، یه ifconfig اجرا بشه ، و نتیجه رو پردازش کنیم. یه کاری شبیه این :

    این دستورو در نظر بگیرید :
    کد:
    # echo -e "root\n$123456\nifconfig ppp0\nexit"
    root
    23456
    ifconfig ppp0
    exit


    خط به خط این خروجی باید بعد از تلنت ، توی مودم اجرا بشه .
    ولی مثلا همچین چیزی جواب نداد :

    کد:
    # echo -e "root\n$123456\nifconfig ppp0\nexit" | telnet 192.168.1.1


    چرا ؟ جواب معلومه ، چون اون خطوطی که echo به telnet میده ، با سرعت توی مودم اجرا میشن . مثلا قبل از اینکه مودم اعلان login خودشو بده !
    پس کاری باید کرد که اون خطوط مثلا با تاخیر ۱ ثانیه به ۱ ثانیه توی مودم اجرا بشن.
    اگه گفتید چی واسه اینکار خوبه ؟ آره گربه ملوس اینترنتی یا netcat

    اینطوری :
    کد:
    # echo -e "root\n$123456\nifconfig ppp0\nexit" | netcat -i 1 192.168.1.1 23

    سوییچ i به netcat میگه خطوط ورودی رو با چه تاخیری پشت سر هم اجرا کن که در اینجا روی یک ثانیه تنظیم شده .

    خیلی جالبه ، ببینید چه اتفاقی میافته :
    کد:
    hamid-laptop:~# echo -e "root\n123456\nifconfig ppp0\nexit" | netcat -i 1 192.168.1.1 23
    
    BusyBox on (none) login: root
    Password: 
    
    
    BusyBox v0.61.pre (2007.05.16-05:50+0000) Built-in shell (ash)
    Enter 'help' for a list of built-in commands.
    
    # ifconfig ppp0
    ppp0   Link encap:Point-Point Protocol 
         inet addr:89.144.179.251 P-t-P:89.144.179.2 Mask:255.255.255.255
         UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 ASYMMTU:1500
         RX packets:166053 errors:0 dropped:0 overruns:0 frame:0
         TX packets:125378 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:0 
         RX bytes:170644982 (162.7 Mb) TX bytes:9617567 (9.1 Mb)
    
    # exit
    hamid-laptop:~#


    البته قبول دارم که بهترین راه نیست ، یکی از دلایلشم اینه که پسوردها بصورت ناامن بین ما و مودم رد و بدل میشن که اگر ارتباط بی سیم باشه که چه بدتر !

    ----------------

    حالا میزان مصرف اینترفیس ppp0 دستمونه ، تنها کاری که باید ابنجام بدیم ، اینه که الگویی برای ذخیره مقدار مصرف بنویسیم و اونو توی یه فایل روی کامپیوترمون ذخیره کنیم.
    و احیانا یزره زرق و برق به اسکریپت بدیم که مثلا هر موقع مصرفمون به یه حدی رسید یه جوری بهمون هشدار بده و از این کارا .

    کد کامل اسکریپتو ببینید :
    کد:
    #!/bin/bash
    
    # modem settings
    modemIP="192.168.1.1"
    modemPass="123456"
    device="ppp0"
    
    # max band width for notice
    maxBW=3072
    
    # refresh interval
    interval=5s
    
    # logfile dir
    logfile="/root/bwlog.txt"
    
    # initial some variables
    req="root\n$modemPass\nifconfig $device\nexit"
    temp_rx=0
    temp_tx=0
    warning=0
    
    # show startup message
    echo "Bandwidth logger started"
    
    # Check for log file exist or not
    [ -a $logfile ] || echo -e "RX bytes: 0\nTX bytes: 0\n" > $logfile
    
    while [ 1 ] ; do
    	# Get current RX, TX bytes from modem
    	temp=`echo -e $req | netcat -i 1 $modemIP 23 | grep "RX bytes"`
    
    	cur_rx=${temp##*RX bytes:}
    	cur_rx=${cur_rx%%(*}
    	
    	cur_tx=${temp##*TX bytes:}
    	cur_tx=${cur_tx%%(*}
    
    	rx=`expr $cur_rx - $temp_rx`
    	
    	tx=`expr $cur_tx - $temp_tx`
    
    	# Read previos RX, TX bytes from log file
    	temp=`cat $logfile | grep RX`
    	prev_rx=${temp##RX bytes:}
    
    	temp=`cat $logfile | grep TX`
    	prev_tx=${temp##TX bytes:}
    
    	# Calculate total RX, TX bytes
    	total_rx=`expr $rx + $prev_rx`
    	
    	total_tx=`expr $tx + $prev_tx`
    	
    	# Save total values in logfile
    	echo "RX bytes: $total_rx" > $logfile
    	echo "TX bytes: $total_tx" >> $logfile
    	
    	echo >> $logfile
    	echo "-------- Extra information --------" >> $logfile
    	echo "Recieve in MiB = $(($total_rx/1024/1024))" >> $logfile
    	echo "Transmit in MiB = $(($total_tx/1024/1024))" >> $logfile
    	
    	# show Warning if BandWidth is finishing ! -----------------------
    	temp=`echo $(($total_rx/1024/1024))`
    	if [ $temp = $maxBW ] ; then
    		if [ $warning = 0 ] ; then
    			zenity --warning --text "hey! your internet bandwidth is finishing" --title "BandWidth Logger" &
    			warning=1
    		fi
    	fi
    	
    	# Initial values for next loop
    	temp_rx=$cur_rx
    	temp_tx=$cur_tx
    	
    	sleep $interval
    done


    به چند تا متغیر اولش دقت کنید.
    * modemIP برای تعیین IP مودم هست .
    * modemPass پسورد مودم برای لوگین هست .
    * device اینترفیسی هست که مصرف ADSL رو نشون میده .
    * interval برای تعیین زمان به روز کردن فایل لاگ هست .
    * logfile هم مسیر فایل لاگ برای ذخیره میزان مصرفه .
    * maxBW حداکثر میزان مصرف به مگابایت هست که اگر بیشتر از اون مصرف کنید یه پنجره اینطوری باز میشه و بهتون اخطار میده :


    حالا برای اینکه این اسکریپت بطور خودکار بعد از بوت سیستم اجرا بشه ، اونو با نام S99bwlogger توی مسیر زیر گذاشتم :
    کد:
    /etc/rc2.d/

    ( میدونم اینم بهترین راه نیست ، ولی خب من معمولا توی runlevel دو هستم )

    و در نهایت همچین فایل لاگی دارید :
    کد:
    RX bytes: 142331828
    TX bytes: 8751719
    
    -------- Extra information --------
    Recieve in MiB = 135
    Transmit in MiB = 8

    که مثلا با اجرای این دستور میتونید مقدار مصرفتونو ببینید :
    کد:
    cat /root/bwlog.txt



    * توجه ۱ : این اسکریپت من ممکنه ( حتما ) یه سری مشکلات داره . شما به دل نگیرید
    ** توجه ۲ : این بیشتر جنبه سرگرمی داشت . بهتره از برنامهآ*های آماده برای اینکار استفاده کنید یا یا ISP تون تماس بگیریدو پهنای باند باقیمونده رو سوال کنید

    شاد باشید;-)

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  2. #2
    2008/02/23
    760
    4

    پاسخ : پهنای باند باقیمانده ؟

    با سلام
    راستی انی zenity چه چیز جالبی هست! فکرش رو نکرده بودم یه همچین چیز با حالی باشه!
    حالا به نظرم در قدم بعدی بد نیست یه applet واسه گنوم درست کنی که خیلی خوشگل مصرف رو نشون بده این جوری هم با حال میآ*شه!

    دوستان دقت کنید حمید خان از shell مودم هم استفاده کرده یعنی shellی که به صورت embedded داخل مودم روی یه پردازنده MIPS داره اجرا میآ*شه. این هم یکی از مثالآ*های استفاده از لینوکس در سیستمآ*های نهفته!
    من دوست دارم آزاد فکر کنم، نرمآ*افزارآ* و سختآ*افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ*افزار، سختآ*افزار و محتوای آزاد درست کنم!
  3. #3
    2008/01/16
    رشت
    857
    10

    پاسخ : پهنای باند باقیمانده ؟

    آره ، zenity واقعا جالبه
    به قول خارجیها very cool

    مثلا این اسکرپتو برای mount کردن فایل iso میشه استفاده کرد :

    کد:
    #!/bin/bash
    
    source=`zenity --file-selection --title="Select iso file"`
    dest=`zenity --file-selection --directory --title="Select mount point"`
    
    if [ -a $source ] ; then
    	if [ -d $dest ] ; then
    		mount -o loop $source $dest
    	fi
    fi

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 3 از 3

موضوعات مشابه

  1. پهنای باند فیلتر EMI
    توسط moosavimaleki در انجمن منابع تغذيه
    پاسخ: 0
    آخرين نوشته: 2015/06/23, 18:54
  2. پهنای باند فیدبک
    توسط مهداف در انجمن مفاهیم پایه برق و الکترونیک
    پاسخ: 0
    آخرين نوشته: 2015/03/09, 18:29
  3. پهنای باند
    توسط ha$med در انجمن مدارهاي مخابراتي
    پاسخ: 2
    آخرين نوشته: 2010/06/03, 22:04
  4. پهنای باند زیاد
    توسط naeim z در انجمن سیستمهای مخابراتی
    پاسخ: 1
    آخرين نوشته: 2007/12/13, 23:11
  5. پهنای باند
    توسط roozi99 در انجمن الكترونيك
    پاسخ: 1
    آخرين نوشته: 2007/06/01, 08:02

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •