自动拨号的脚本写起来就很容易了,主要还是用到了subprocess这个库,用来执行系统的命令,下面贴出来代码:
#!/usr/bin/env python
# coding=utf-8
import subprocess
import time
import sys
import re
reload(sys)
sys.setdefaultencoding('utf8')
def change_ip_for_vps():
try:
subprocess.Popen('pppoe-stop', shell=True, stdout=subprocess.PIPE)
time.sleep(50)
subprocess.Popen('pppoe-start', shell=True, stdout=subprocess.PIPE)
time.sleep(500)
pppoe_restart = subprocess.Popen('pppoe-status', shell=True, stdout=subprocess.PIPE)
pppoe_restart.wait()
pppoe_log = pppoe_restart.communicate()[0]
adsl_ip = re.findall(r'inet (.+?) peer ', pppoe_log)[0]
print '[*] New ip address : ' + adsl_ip
return True
except Exception, e:
print e
change_ip_for_vps()
if __name__ == '__main__':
count = 1
while True:
print '[*] 第%s次拨号' % str(count)
change_ip_for_vps()
count += 1
测试代码里面用到了一些sleep来做延迟,实际操作中适当调整sleep的值来达到最优的效果。
使用之前当然是要具备Python环境,下面是使用截图(循环拨号测试):