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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
Python的高级Git库 Gittle
Sep 22 Python
使用Python编写vim插件的简单示例
Apr 17 Python
numpy 进行数组拼接,分别在行和列上合并的实例
May 08 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
Python学习笔记之While循环用法分析
Aug 14 Python
Python 项目转化为so文件实例
Dec 23 Python
python函数指定默认值的实例讲解
Mar 29 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制作的意见反馈表源码
2007/03/11 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
jQuery遍历Form示例代码
2013/09/03 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
js比较日期大小的方法
2015/05/12 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
vue弹窗消息组件的使用方法
2020/09/24 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
详解用python实现简单的遗传算法
2018/01/02 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python批量修改文件名的示例
2020/09/27 Python
北美领先的智能产品购物网站:Wellbots
2018/06/11 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
大学生创业策划书
2014/02/02 职场文书
刊首寄语大全
2014/04/11 职场文书
欢迎横幅标语
2014/06/17 职场文书
优秀会计求职信
2014/07/04 职场文书
入党培养人考察意见
2015/06/08 职场文书
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android