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生成验证码实例
Aug 21 Python
python按照多个字符对字符串进行分割的方法
Mar 17 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
Python学习小技巧之列表项的拼接
May 20 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
对python判断ip是否可达的实例详解
Jan 31 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
python颜色随机生成器的实例代码
Jan 10 Python
python 穷举指定长度的密码例子
Apr 02 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 Python
详解anaconda安装步骤
Nov 23 Python
用Python制作灯光秀短视频的思路详解
Apr 13 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
无限级别菜单的实现
2006/10/09 PHP
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php 更新数据库中断的解决方法
2009/06/05 PHP
php生成xml简单实例代码
2009/12/16 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
jquery 图片Silhouette Fadeins渐显效果
2010/02/07 Javascript
用js来解决ajax读取页面乱码
2010/11/28 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Django框架中的对象列表视图使用示例
2015/07/21 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
党课知识竞赛主持词
2014/04/01 职场文书
学期评语大全
2014/04/30 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
课内比教学心得体会
2014/09/09 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
2014年店长工作总结
2014/11/17 职场文书
离婚协议书格式
2014/11/21 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
余世维讲座观后感
2015/06/11 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技