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中字典和JSON互转操作实例
Jan 19 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
python与字符编码问题
May 24 Python
python版百度语音识别功能
Jul 09 Python
Pytorch之view及view_as使用详解
Dec 31 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
重写django的model下的objects模型管理器方式
May 15 Python
Django Path转换器自定义及正则代码实例
May 29 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Pytorch 如何实现常用正则化
May 27 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
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
Jquery对象和Dom对象的区别分析
2014/11/20 Javascript
微信小程序 基础知识css样式media标签
2017/02/15 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
node错误处理与日志记录的实现
2018/12/24 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
python 域名分析工具实现代码
2009/07/15 Python
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python内存管理机制原理详解
2019/08/12 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
Django app配置多个数据库代码实例
2019/12/17 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
深入了解python列表(LIST)
2020/06/08 Python
基于 HTML5 Canvas实现 的交互式地铁线路图
2018/03/05 HTML / CSS
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
美国滑板店:Tactics
2020/11/08 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
战略合作意向书
2014/07/29 职场文书
甜品店创业计划书
2014/09/21 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
裁员通知
2015/04/25 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL