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中使用动态变量名的方法
May 06 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
浅谈python爬虫使用Selenium模拟浏览器行为
Feb 23 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
python实现弹窗祝福效果
Apr 07 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
Python图片的横坐标汉字实例
Dec 04 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 Python
python模拟点击网页按钮实现方法
Feb 25 Python
jupyter notebook 多行输出实例
Apr 09 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
使用django自带的user做外键的方法
Nov 30 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定时更新程序设计思路分享
2014/06/10 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
升职自荐信范文
2013/10/05 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
献爱心倡议书
2014/04/14 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
出纳工作检讨书范文
2014/12/27 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
简单介绍Python的第三方库yaml
2021/06/18 Python
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis