Python获取当前公网ip并自动断开宽带连接实例代码

转载  更新时间:2018年01月12日 15:33:58   作者:mingz2013   我要评论

这篇文章主要介绍了Python获取当前公网ip并自动断开宽带连接实例代码,具有一定借鉴价值,需要的朋友可以参考下

今天写了一个获取当前公网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使用htmllib分析网页内容的方法

    python使用htmllib分析网页内容的方法

    这篇文章主要介绍了python使用htmllib分析网页内容的方法,涉及Python使用htmllib模块的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Python下载网络文本数据到本地内存的四种实现方法示例

    Python下载网络文本数据到本地内存的四种实现方法示例

    这篇文章主要介绍了Python下载网络文本数据到本地内存的四种实现方法,涉及Python网络传输、文本读写、内存I/O、矩阵运算等相关操作技巧,代码中包含了较为详尽的注释说明便于理解,需要的朋友可以参考下
    2018-02-02
  • 每天迁移MySQL历史数据到历史库Python脚本

    每天迁移MySQL历史数据到历史库Python脚本

    这篇文章主要为大家详细介绍了Python实现每天迁移MySQL历史数据到历史库的脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python3.4编程实现简单抓取爬虫功能示例

    Python3.4编程实现简单抓取爬虫功能示例

    这篇文章主要介绍了Python3.4编程实现简单抓取爬虫功能,涉及Python3.4网页抓取及正则解析相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • jupyter安装小结

    jupyter安装小结

    jupyter (之前的 ipython notebook )于我的最大意义在于,让学习进程和探索进程变得可累积,正如它的原先名字中的 notebook 所暗示的那样,作为学习的记录者,方便你随时捡起学习的进度,增量式地前进
    2016-03-03
  • python类中super()和__init__()的区别

    python类中super()和__init__()的区别

    这篇文章主要介绍了python类中super()和__init__()的区别,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2016-10-10
  • Python使用xlrd读取Excel格式文件的方法

    Python使用xlrd读取Excel格式文件的方法

    这篇文章主要介绍了Python使用xlrd读取Excel格式文件的方法,实例分析了Python操作Excel文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Python实现计算文件夹下.h和.cpp文件的总行数

    Python实现计算文件夹下.h和.cpp文件的总行数

    这篇文章主要介绍了Python实现计算文件夹下.h和.cpp文件的总行数,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • django反向解析和正向解析的方式

    django反向解析和正向解析的方式

    这篇文章主要介绍了django反向解析和正向解析的方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Go/Python/Erlang编程语言对比分析及示例代码

    Go/Python/Erlang编程语言对比分析及示例代码

    这篇文章主要介绍了Go/Python/Erlang编程语言对比分析及示例代码,本文重点是给大家介绍go语言,从语言对比分析的角度切入介绍,需要的朋友可以参考下
    2018-04-04

最新评论