通过接口方式查询网络设备上的一些参数,之前运维时都是直接在linux服务器上用curl实现,相对比较简单。但是要python自动化脚本实现,curl命令就没那么好用了。

比如:

curl -k -u user:password https://192.168.254.4:8100/api/tmcm/2.0/bandwidth_pack_license_key| json_reformat 

这时候会返回所需要获取的值。

如果用python,就要调用urllib2这个库了。自己尝试着封装了一个url查询函数,用于达到上述curl命令同等效果。

1、首先要导入相应的库。

import json,urllib2

2、定义函数,输入url返回对应数值,并做好异常处理。

def connTmcm(uri):

    try:

        url = "https://192.168.254.4:8100"

        username = "user"

        password = "password"

        passwordMgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

        passwordMgr.add_password(None, url, username, password)

        handler = urllib2.HTTPBasicAuthHandler(passwordMgr)

        opener = urllib2.build_opener(handler)

        urllib2.install_opener(opener)

        if bool(uri) != False:

            url += uri

        response = urllib2.urlopen(url)

        lbList = response.read()

        jlist = json.loads(lbList)

        return jlist

    except:

        info = sys.exc_info()

        lbList = getAllAttrs(info[0]) + getAllAttrs(info[1])

        return lbList

3、调用函数

lbLicenseDict = connTmcm('/api/tmcm/2.0/bandwidth_pack_license_key')