Python获取当前公网ip并自动断开宽带连接实例代码


Posted in Python onJanuary 12, 2018

今天写了一个获取当前公网ip并且自动断开宽带连接的文件,和大家分享下。

这个文件的具体用途大家懂的,可以尽管拿去用,不过目前只适用于Windows平台,我的Python版本是2.7的,win32ras模块需要下载pywin32。

代码如下:

#!coding: cp936 
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 = '********' 
  passwd = '****************' 
  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() 
  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(3) 
  else: 
    pid, res = DialBroadband() 
    ShowIpAddress(pid) 
    time.sleep(3) 
    Disconnect(pid) 
  return "finsh test" 
 
test = main() 
print test

基本的注释都有,大家可以自己参考。

总结

以上就是本文关于Python获取当前公网ip并自动断开宽带连接实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python最长公共子串算法实例
Mar 07 Python
Python实现方便使用的级联进度信息实例
May 05 Python
Python求导数的方法
May 09 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
python清除字符串中间空格的实例讲解
May 11 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
代码详解django中数据库设置
Jan 28 Python
python 实现list或string按指定分段
Dec 25 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
python Yaml、Json、Dict之间的转化
Oct 19 Python
Python+OpenCV图像处理——实现直线检测
Oct 23 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 #Python
python opencv实现任意角度的透视变换实例代码
Jan 12 #Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 #Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 #Python
微信跳一跳python自动代码解读1.0
Jan 12 #Python
Tornado 多进程实现分析详解
Jan 12 #Python
快速了解Python相对导入
Jan 12 #Python
You might like
PHP捕获Fatal error错误的方法
2014/06/11 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
JavaScript对象学习经验整理
2013/10/12 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
理解Python中函数的参数
2015/04/27 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
Python 随机按键模拟2小时
2020/12/30 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
同居协议书范本
2014/04/23 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
华清池导游词
2015/02/02 职场文书