• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

我使用python3+netconf查询防火墙的安全策略,报出UTF8的错误

2022-05-12提问
  • 0关注
  • 1收藏,908浏览
粉丝:0人 关注:0人

问题描述:

我的python脚本如下:

#!/usr/bin/env python3
# coding: utf-8
import warnings,json,re
from ncclient import manager
warnings.simplefilter("ignore", DeprecationWarning)

def netconf_connect(jsonstr):
    def my_unknown_host_cb(host, figerprint):
        return True
    account = jsonstr['account']
    host = account['ip']
    port = account['port']
    user = account['userName']
    password = account['password']
    device = account['name']
    timeout = 300
    return manager.connect(host=host, port=port, username=user,password=password, unknown_host_cb=my_unknown_host_cb, allow_agent=False, look_for_keys=False,device_params={'name': device}, manager_params={'timeout': timeout})

def queryRule(jsonstr):
    xml = """<top
    xmlns="http://www.h3c.com/netconf/data:1.0"
    xmlns:base="http://www.h3c.com/netconf/base:1.0">
    <SecurityPolicies>
    <GetRules>
    <Rule>
    <Type/>
    <ID></ID>
    <Name/>
    <Action/>
    <SrcZoneList>
    <SrcZoneItem/>
    </SrcZoneList>
    <DestZoneList>
    <DestZoneItem/>
    </DestZoneList>
    <SrcAddrList>
    <SrcAddrItem/>
    </SrcAddrList>
    <DestAddrList>
    <DestAddrItem/>
    </DestAddrList>
    <ServObjList>
    <ServObjItem/>
    </ServObjList>
    <Enable/>
    <Log/>
    <Counting/>
    <SessAgingTimeSw/>
    <SessPersistAgingTimeSw/>
    <AllRulesCount/>
    </Rule>
    </GetRules>
    </SecurityPolicies>
    </top>"""
    with netconf_connect(jsonstr) as m:
        print(m.get(('subtree', xml)))

if __name__ == '__main__':
    func = 'queryRule'
    jsOninfo='''{"account":{"password":"xxxx","port":xxx,"ip":"x.x.x.x","name":"h3c","userName":"xxxx"}}'''
    jsOninfo= re.sub('\"{',"{",jsoninfo)
    jsOninfo= re.sub('}\"',"}",jsoninfo)
    jsOninfo= re.sub(r'\\','',jsoninfo)
    jsOnstr= json.loads(jsoninfo)
    if func == 'queryRule':
        queryRule(jsonstr)


我的报错截图如下


奇怪的是,这个脚本今天之前一直都可以使用

1. 当我修改xml变量的内容时:

xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""

是可以正常返回结果的

2. 我又修改xml内容

xml = """<top

xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
<SrcZoneList>
<SrcZoneItem/>
</SrcZoneList>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""
也可以正常返回
3 .我又在xml中加入DestZoneList
xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
<SrcZoneList>
<SrcZoneItem/>
</SrcZoneList>
<DestZoneList>
<DestZoneItem/>
</DestZoneList>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""
又开始报错

4.单独查询DestZoneList也是没有问题的

xml = """<top
xmlns="http://www.h3c.com/netconf/data:1.0"
xmlns:base="http://www.h3c.com/netconf/base:1.0">
<SecurityPolicies>
<GetRules>
<Rule>
<Type/>
<ID></ID>
<Name/>
<Action/>
<DestZoneList>
<DestZoneItem/>
</DestZoneList>
</Rule>
</GetRules>
</SecurityPolicies>
</top>"""

请问这是什么情况


组网及组网描述:

1 个回答
粉丝:24人 关注:0人

难道安全策略有中文字符?你这个就超纲了,建议联系400

400会受理这种二次开发的问题吗

zhiliao_Yq9Ush 发表时间:2022-05-12

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明