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基础教程之基本内置数据类型介绍
Feb 20 Python
Python日期的加减等操作的示例
Aug 15 Python
简单了解python协程的相关知识
Aug 31 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
python关于变量名的基础知识点
Mar 03 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
基于Django集成CAS实现流程详解
Nov 28 Python
python的setattr函数实例用法
Dec 16 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个人网站架设连环讲(二)
2006/10/09 PHP
PHP 日期加减的类,很不错
2009/10/10 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
javascript简单进制转换实现方法
2016/11/24 Javascript
Bootstrap CSS组件之按钮组(btn-group)
2016/12/17 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
详解Python进程间通信之命名管道
2017/08/28 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
中学生差生评语
2014/01/30 职场文书
拉拉队口号
2014/06/16 职场文书
节约能源标语
2014/06/17 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
优秀党支部申报材料
2014/12/24 职场文书
九年级数学教学反思
2016/02/17 职场文书
python 三边测量定位的实现代码
2021/04/22 Python