سلام دوستان
همانطور که گفته بودم، برای مدیریت راحتتر modem و کوتاه تر شدن زمان را با خط فرمان بهتره از script استفاده بشه.
از این رو تصمیم گرفتم تا موارد خیلی پر کاربرد را به صورت script براتون بذارم.
قبلش بگم که، من تاحالا برای سیستم عامل برنامه ننوشته بودم ( من با PHP کار میکنم ) و این اولین برنامه من هست و با python نوشتم.
اگر مشکلی داره یا بد نوشتم به بزرگی خودتون ببخشید و بهم بگین تا اصلاحش کنم.
دوستان عزیز دیگر که برنامه نویسی بلد هستند، در صورت تمایل لطفا برنامه را به زبان های دیگر هم قرار دهید تا همه بتوانند استفاده کنند.
#!/usr/bin/env python
import sys
import telnetlib
modem_ip = "192.168.1.1"
username = "admin"
password = "admin"
if len(sys.argv) < 2:
sys.exit()
_command = sys.argv[1]
tn = telnetlib.Telnet(modem_ip)
tn.read_until("Username: ", 1)
tn.write(username.encode("ascii") + b"\r")
tn.read_until("Password: ")
tn.write(password.encode("ascii") + b"\r")
if _command == "reboot":
tn.write(b"reboot\n")
if _command == "wan":
if len(sys.argv) < 4:
sys.exit()
Sub_command = sys.argv[2]
VPC_Index = sys.argv[3]
if Sub_command == "on":
tn.write(b"wan node index "+ VPC_Index +"\n")
tn.write(b"wan node enable\n")
tn.write(b"wan node save\n")
if Sub_command == "off":
tn.write(b"wan node index "+ VPC_Index +"\n")
tn.write(b"wan node disable\n")
tn.write(b"wan node save\n")
if _command == "wlan":
if len(sys.argv) < 3:
sys.exit()
Sub_command = sys.argv[2]
if Sub_command == "on":
tn.write(b"rtwlan enableap\n")
if Sub_command == "off":
tn.write(b"rtwlan disableap\n")
tn.write(b"exit\n")
لیست دستورات:
در اینجا برنامه با نام DSL.py ذخیره شده است.
برای reboot کردن:
./DSL.py reboot
برای روشن کردن wireless:
./DSL.py wlan on
برای خاموش کردن wireless:
./DSL.py wlan off
برای وصل کردن ارتباط Internet:
./DSL.py wan on <PVC_Index>
برای قطع کردن ارتباط Internet:
./DSL.py wan off <PVC_Index>
اگر استقبال زیاد باشه و دوستان عزیز دیگر هم حمایت کنند، می توان این برنامه را تا سطح خیلی بالایی پیش برد.
مثلا:
- طراحی یک رابط کاربری خوب.
- مدیریت، مشاهده وصعیت و... اتصالات ( فعلا برنامه همین هست
)
- مدیریت تعداد سیستم های متصل ( مثلا اگر کسی از طریق Wireless وصل شد، اطلاع بده
یا اگر ارتباط دستگاهی قطع شده اطلاع بده )
- مدیریت حجم دریافت و ارسال در شبکه داخلی و Internet
- هشدار دادن وضعیت Internet ( خیلی مواقعه ممکنه Internet قطع بشه و متوجه نشید، میشه کاری کرد که به محض قطع و وصل شدن اینترنت اطلاع بده )
و...