第一步,线路链接
在没有使用路由器时,电脑直接连接宽带上网,现在使用路由器共用宽带上网,则需要用路由器来直接连接宽带。根据入户宽带线路的不同,可以分为网线、电话线、光纤三种接入方式。具体如何连接请参考下图:
注意:宽带线一定连接到路由器WAN口,WAN口颜色与LAN口一般不同,电脑连接1\2\3\4任意一个端口。
连接好线路之后,请检查并确认对应的接口指示灯常亮或闪烁。
第二步,操作设置
设置路由器之前,需要将操作电脑设置为自动获取IP地址。如果电脑没有设置过,一般情况下电脑IP地址默认为自动获取。
第三,登陆管理界面设置
1、输入路由器管理地址
打开电脑桌面上的IE浏览器,清空地址栏并输入路由器管理IP地址(192.168.1.1),回车后弹出登录框。
注意:部分路由器使用tplogin.cn登录,路由器的具体管理地址建议在壳体背面标贴上查看。
2、登录管理界面
初次进入路由器管理界面,为了保障设备安全,需要设置管理路由器的密码,请根据界面提示进行设置。如下图:
注意:部分路由器需要输入管理用户名、密码,均输入admin即可。
第四步,按照设置向导设置路由器
1、开始设置向导
进入路由器的管理界面后,点击 设置向导,点击 下一步。
2、选择上网方式
上网方式选择 PPPoE(ADSL虚拟拨号) ,点击 下一步。
注意:如果上网方式为静态IP或动态IP,请选择对应方式并设置。
3、输入上网宽带账号和密码
在对应设置框填入运营商提供的宽带账号和密码,并确定该账号密码输入正确。
注意:76%以上的用户因为输错宽带账号密码导致无法上网,请仔细检查入户的宽带账号密码是否正确,注意中英文输入、字母大小写、后缀等是否输入完整。
4、设置无线参数
SSID即无线网络名称(可根据实际需求设置),选中 WPA-PSK/WPA2-PSK 并设置PSK无线密码,点击 下一步。
注意:无线密码是用来保证无线网络安全,确保不被别人蹭网。
5、设置完成
点击 完成,设置向导完成。
注意:部分路由器设置完成后需要重启,点击重启即可。
第五步,确认设置成功
设置完成后,进入路由器管理界面,点击 运行状态,查看 WAN口状态,如下图框内IP地址不为0.0.0.0,则表示设置成功。
至此,网络连接成功,路由器已经设置完成。电脑连接路由器后不需要进行宽带连接拨号,直接可以打开网页上网。
你说的总体是可行的,路由器都会提供一个web 的访问控制界面,python urllib2 可以利用POST 的方式登录,加一个header 就可以了,下面是登录一个BBS 的代码的header:
req=urllib.request.Request(url)req.add_header('User-agent','Mozilla/5.0')
req.add_header('Content-Type','application/x-www-form-urlencoded')
params=urllib.parse.urlencode({'id':username,
'login.x':24,
'login.y':8,
'login':'登陆',
'pw':password,
'titletype':'forum'
})
params=params.encode('gb2312')
print('Send request! waiting respose.....')
res=urllib2.urlopen(req,params)
下面是我ppp登录路由器的方式:
#!/usr/bin/python#
# License: GNU GPL v2
#
# Script for comtrend hg536+ ( firmware A101-302JAZ-C03_R21.A2pB021g.d15h )
# This scripts connect to router and reset ip in 45s. In this example use default values for jazztel .
import getpass
import sys
import telnetlib
import time
HOST = "192.168.1.1"
LOGIN = "admin"
PASS = "admin"
PROMPT = " -> "
WAITTIME = 40 # Number of second
CONNECTIONNAME = "0.8.35 2" # to see your connections, manually connect to router (telnet 192.168.1.1) and use "wan show" .You should choose you PPPoE connection Use a combination of VCC + Con Id. For example ""0.8.35 2""
tnt = telnetlib.Telnet(HOST)
tnt.read_until("Login: ")
tnt.write(LOGIN + "\n")
tnt.read_until("Password: ")
tnt.write(PASS + "\n")
tnt.read_until(PROMPT)
tnt.write("ppp config " + CONNECTIONNAME + " down\n")
time.sleep(3)
tnt.write("\n")
tnt.write("ppp config " + CONNECTIONNAME + " up\n")
time.sleep(WAITTIME)
tnt.read_until(PROMPT)
tnt.write("ppp config " + CONNECTIONNAME + " up\n")
tnt.write("\n")
tnt.read_until(PROMPT)
tnt.write("13\n") # press option to exit
tnt.close()
下面重启路由器:
#!/usr/bin/env python# -*- coding: utf-8 -*-
import sys
import telnetlib
import re
import time
import sys
import os
HOST = "192.168.2.1"
password = "password"
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
def disable(self):
self.HEADER = ''
self.OKBLUE = ''
self.OKGREEN = ''
self.WARNING = ''
self.FAIL = ''
self.ENDC = ''
def drukuj(wiadomosc):
sys.stdout.write("\r")
sys.stdout.write(" ")
sys.stdout.flush()
sys.stdout.write("\r")
sys.stdout.write(wiadomosc)
sys.stdout.flush()
#sys.stdout.write("\r")
def status(komenda):
odb = ""
try:
tn = telnetlib.Telnet(host=HOST,timeout=23)
except IOError:
print "Nie nawiązano połączenia :(\n"
else:
tn.read_until("Password: ")
tn.write(password + "\n")
if komenda=="wan adsl reset\n":
tn.write(komenda)
tn.write("exit\n")
#print "Połączenie zostało z resetowane"
drukuj(bcolors.FAIL + "Połączenie zostało z resetowane" + bcolors.ENDC)
if komenda=="ip route status\n":
tn.write(komenda)
tn.write("exit\n")
odb = tn.read_all()
if komenda=="wan adsl status\n":
tn.write("wan adsl status\n")
tn.write("exit\n")
odb = tn.read_all()
if re.search('current modem status: down', odb):
#print "Status: down"
drukuj(bcolors.HEADER + "Status: down" + bcolors.ENDC)
if re.search('current modem status: wait for initialization', odb):
#print "Status: wait for initialization"
drukuj(bcolors.WARNING + "Status: wait for initialization" + bcolors.ENDC)
if re.search('current modem status: initializing', odb):
#print "Status: initializing"
drukuj(bcolors.WARNING + "Status: initializing" + bcolors.ENDC)
if re.search('current modem status: up', odb):
#print "Status: up"
drukuj(bcolors.OKBLUE + "Status: up" + bcolors.ENDC)
return odb
def clear():
if os.name == "posix":
# Unix/Linux/MacOS/BSD/etc
os.system('clear')
elif os.name in ("nt", "dos", "ce"):
# DOS/Windows
os.system('CLS')
if __name__=="__main__":
clear()
status("wan adsl reset\n")
time.sleep(5)
a = True
while a:
odb = status("ip route status\n")
if re.search('\d *poe0 *\d', odb):
#print "Modem działa"
drukuj(bcolors.OKGREEN + "-={{Modem działa}}=-\n" + bcolors.ENDC)
time.sleep(2)
#clear()
a = False
else:
time.sleep(3)
status("wan adsl status\n")
time.sleep(3)
下面通过telnet 来重启路由器
#!/usr/bin/env python# -*- coding: utf-8 -*-
import telnetlib
HOST = "192.168.1.1"
USER = "root"
PASS = "admin"
router = telnetlib.Telnet(HOST)
router.read_until(": ", 2) # wait for timeout or "BusyBox on localhost login: "
router.write(USER + "\n")
router.read_until(": ", 2) # wait for timeout or "Password: "
router.write(PASS + "\n")
router.read_until("# ", 2) # wait for timeout or "# "
router.write("reboot\n")
router.close()
print "Done!"
这是四段独立的代码!