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文件的md5加密方法
Apr 06 Python
Python yield 使用方法浅析
May 20 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
Python实现XML文件解析的示例代码
Feb 05 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
3行Python代码实现图像照片抠图和换底色的方法
Oct 10 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
Python绘制动态水球图过程详解
Jun 03 Python
Python如何爬取51cto数据并存入MySQL
Aug 25 Python
python计算auc的方法
Sep 09 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
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
PHP云打印类完整示例
2016/10/15 PHP
jQuery的学习步骤
2011/02/23 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
微信小程序实现人脸检测功能
2018/05/25 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
详解python中TCP协议中的粘包问题
2019/03/22 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
python与pycharm有何区别
2020/07/01 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
CSS3 简写animation
2012/05/10 HTML / CSS
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
仓管员岗位责任制
2014/02/19 职场文书
机动车登记业务委托书
2014/10/08 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
初中生毕业评语
2014/12/29 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
详解MySQL的半同步
2021/04/22 MySQL
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS