#!/usr/bin/env python
# -*- coding:utf-8 -*-
import win32ras
import time,os

def Connect(dialname, account, passwd):
dial_params = (dialname, '', '', account, passwd, '')
return win32ras.Dial(None, None, dial_params, None)

def DialBroadband():
dialname = '宽带连接' #just a name
account = '057992811002'
passwd = '875645'
try:
#handle is a pid, for disconnect or showipadrress, if connect success return 0.
#account is the username that your ISP supposed, passwd is the password.
handle, result = Connect(dialname, account, passwd)
if result == 0:
print("Connection success!")
return handle, result
else:
print("Connection failed, wait for 5 seconds and try again...")
time.sleep(5)
DialBroadband()
except:
print("Can't finish this connection, please check out.")
return

def Disconnect(handle):
if handle != None:
try:
win32ras.HangUp(handle)
print("Disconnection success!")
return "success"
except:
print("Disconnection failed, wait for 5 seconds and try again...")
time.sleep(5)
Disconnect(handle)
else:
print("Can't find the process!")
return

def Check_for_Broadband():
connections = []
connections = win32ras.EnumConnections()
if(len(connections) == 0):
print("The system is not running any broadband connection.")
return
else:
print("The system is running %d broadband connection." % len(connections))
return connections

def ShowIpAddress(handle):
print(win32ras.GetConnectStatus(handle))
data = os.popen("ipconfig","r").readlines()
have_ppp = 0
ip_str = None
for line in data:
if line.find("宽带连接")>=0:
have_ppp = 1
#if your system language is English, you should write like this:
#if have_ppp and line.strip().startswith("IP Address"):
#in othewords, replace the "IPv4 地址" to "IP Address"
if have_ppp and line.strip().startswith("IPv4 地址"):
ip_str = line.split(":")[1].strip()
have_ppp = 0
print(ip_str)

#get my ipaddress anf disconnect broadband connection.
def main():
data = Check_for_Broadband()
#if exist running broadband connection, disconnected it.
if data != None:
for p in data:
ShowIpAddress(p[0])
if(Disconnect(p[0]) == "success"):
print("%s has been disconnected." % p[1])
time.sleep(0.05)
DialBroadband()
else:
pid, res = DialBroadband()
ShowIpAddress(pid)
return "finsh test"

最新文章

  1. git上传文件出错的时候
  2. Windows10+Ubuntu双系统安装 (转)
  3. form表单转Json提交方法
  4. 读bootstrap2.3.2有感1
  5. CSS简单布局总结
  6. LeetCode "Top K Frequent Elements"
  7. iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
  8. 分享JS代码(转)
  9. 47. 数组中出现次数超过一半的数字[Number appears more than half times]
  10. [转]Java 泛型: 什么是PECS(Producer Extends, Consumer Super)
  11. How to use HaploView
  12. [总结]Android系统体系结构
  13. NOIP2014 生活大爆炸版石头剪刀布
  14. Linux(Fedora)下NodeJs升级最新版本(制定版本)
  15. Python Challenge 第四题
  16. 13-TypeScript单例模式
  17. Terminal,git,vim常用命令整理以及删除本地git仓库
  18. C#串口SerialPort常用属性方法
  19. django ORM常用查询条件
  20. h5内容超出可以滑动展示的处理,iscroll的使用

热门文章

  1. 移动端页面-点击input输入框禁止放大效果
  2. phpstudy安装好之后mysql无法启动(亲测可行)
  3. Java中字符串为什么不以\0结尾
  4. 微信小程序 this.setData() 详解
  5. 在centos 6.3系统下安装java、tomcat环境的方法与步骤(方法经过验证,可安装成功)
  6. 基础篇-1.5Java的数组
  7. 命令模式(Command、Recevier、Invoker)(电脑开机命令)
  8. go语言:类型转换
  9. java数字金额转中文大写
  10. JQ效果 透明图片覆盖动画