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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值