爬虫过程中的动态拨号

windows下:

import os
from time import sleep

class VPNHelper(object):
    def __init__(self, _vpnIP, _userName, _passWord, WinDir=r"C:\Windows\System32", RasDialFileName=r'\rasdial.exe'):
        self.IPToPing = _vpnIP
        self._VPNName = _vpnIP;
        self._UserName = _userName;
        self._PassWord = _passWord;
        self._WinDir = WinDir
        self._RasDialFileName = RasDialFileName
        self._VPNPROCESS = self._WinDir + self._RasDialFileName

    def TryConnectVPN(self):
        try:
            command = self._VPNName + " " + self._UserName + " " + self._PassWord
            os.system(self._VPNPROCESS + " " + command)
            return 1
        except:
            print("----VPN连接失败!---")
            return 0

    def TryDisConnectVPN(self):
        try:
            command = self._VPNName + " /d"
            os.system(self._VPNPROCESS + " " + command)
        except:
            print("---VPN断开失败!---")

    def Restart(self, waitingTime=0):
        import time
        self.TryDisConnectVPN()
        time.sleep(waitingTime)
        status=self.TryConnectVPN()
        while(status==0):
            status = self.TryConnectVPN()
        time.sleep(1.5)
def changIP():
    vpn = VPNHelper("地址", "账号", "密码")
    vpn.Restart(5)
    sleep(6)

 

Linux下pptp拨号(先安装pptp):

 

def changIP():
    o = 'F'
    while o =='F':
        try:
            print("关闭拨号器!")
            #subprocess.getoutput('sudo pptpsetup --delete laoying')
            #sleep(0.5)
            pkill=subprocess.getoutput('sudo pkill -9 pptp')
            sleep(1)
            print('---1---',pkill)
            setuped=subprocess.getoutput('sudo pptpsetup --create laoying --server 地址 --username 账号--password 密码 --start')
            sleep(3)
            print('----2----',setuped)
            pon=subprocess.getoutput('sudo pon laoying')
            print('---3---',pon)
            sleep(2)
            newvpn = subprocess.getoutput('sudo route add default dev ppp0')
            print('----4--',newvpn)
            sleep(6)
            if pon != '' or newvpn!='':
                o = 'F'
                continue
            print("拨号成功!")
            return
        except:
            o = 'F'
            print('拨号出错!')
            sleep(0.5)

#if __name__=='__main__':
 #    changIP()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值