首页 > 编程 > Python > 正文

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

2019-11-25 15:21:59
字体:
来源:转载
供稿:网友

今天写了一个获取当前公网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并自动断开宽带连接实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表