python

超轻量级php框架startmvc

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

更新时间:2020-05-17 21:00:02 作者:startmvc
今天写了一个获取当前公网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 获取公网ip python获取本机公网ip python 公网ip python 获得公网ip python3 公网ip