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爬虫
Dec 25 Python
python读写ini配置文件方法实例分析
Jun 30 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
django反向解析和正向解析的方式
Jun 05 Python
Python中的四种交换数值的方法解析
Nov 18 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
Mar 30 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
python实现画图工具
Aug 27 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 Python
Python+DeOldify实现老照片上色功能
Jun 21 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开发文档 会员收费1期
2012/08/14 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
简单的php购物车代码
2020/06/05 PHP
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
详解JavaScript的变量
2019/04/04 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
python 实现A*算法的示例代码
2018/08/13 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
HTML5样式控制示例代码
2013/11/27 HTML / CSS
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
环卫工人慰问信
2015/02/15 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
体育委员竞选稿
2015/11/21 职场文书
Python Pandas模块实现数据的统计分析的方法
2021/06/24 Python