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

举报

×

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

侵犯我的权益

×

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

泄露了我的隐私

×

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

侵犯了我企业的权益

×

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

抄袭了我的内容

×

原文链接或出处

诽谤我

×

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

对根叔知了社区有害的内容

×

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

不规范转载

×

举报说明

用python自动化修改已经固化的auto-ap的名字和ssid信号效果演示

2020-05-02发布
  • 1关注
粉丝:7人 关注:0人

序言:前期AC上配置了这2条命令:wlan auto-ap enable,wlan auto-persistent enable,所有ap已经自动上线了,真的很舒服,某一天鸟毛客户给了你如下这个excel,叫你给我修改ap的名字,尤其是酒店场景,ap的名字给我换成房间号,该房间所在的ssid也给我换成对应的房间号码,就跟天翼宽带跟酒店合作的机顶盒效果一样,几百个到1W个ap改名字和ssid,真的很痛苦。

那么如何解决这个问题,python自动化上场了,但是也有如下要思考的问题:

1,自动化上线的ap-name是xxxx-xxxx-xxxx小写的格式,而客户提供的excel的MAC数据是靠扫码枪获取,都是XXXXXXXXXXXX连续的大写加数字组合,你得转换excel中MAC的格式

2,打算将MAC地址和房间号封装成一个字典,AP的MAC地址是唯一的,所以字典的键是MAC,值是房间号。无线AP重命名的命令就是这个:

wlan rename-ap ap-name new-ap-name,要求修改后的new-ap-name唯一,但是如果一个房间有2个AP以上时,字典的值就会冲突,为了解决这个问题,先创建2个空列表,一个存放房间号,另一个存放mac地址,利用for循环判断房间号列表中重复次数rooms.count(room)>=2的元素,然后修改列表对应索引的值,思路如下:如果1912房间号有3个AP时,将值修改如下格式:1912-1,1912-2,1912-3,最后利用

ap_rename = {}

for i in range(len(rooms)): 

    ap_rename.setdefault(ap_macs[i], rooms[i]) # mac地址是k, rooms房间号是v的字典

最终脚本结果以txt文档放在笔记本的D盘目录,然后在CRT上ctrl+v复制,几秒之内搞定。

效果展示:



PS:此版本代码有个致命缺点,当某个房间有多个AP时,此时房间号登记的位置必须在excel中的位置连续,这也符合你正常登记的习惯,你收集每个房间的AP的mac时,肯定逐一登记,不可能excel表格的第一行登记7601房间记录,第二行登记7602房间,最后第三行又来登记7601房间的记录,这种错开登记房间号的行为会导致代码输出异常!

今天改写部分代码优化了这种乱序登记房间号行为的excel表格记录:


rooms 列表重写为 ["7601-1", "7602", "7610-1", "7605-1", "7605-2", "7607", "7608", "7610-2", "7610-3", "7601-2"]

ap_rename字典:

{"7057-bfc5-d400": "7601-1", "7057-bfc5-d820": "7602", "7057-bfc5-f640": "7610-1", "7057-bfc5-dae0": "7605-1", "7057-bfc1-66c0": "7605-2",

 "7057-bfc1-6b40": "7607", "7057-bfc1-8b00": "7608", "7057-bfc1-c8c0": "7610-2", "7057-bfc1-61c0": "7610-3", "7057-bfc1-f460": "7601-2"}


4个回复
#
1
粉丝:65人 关注:4人

干货,赞一个!

暂无评论

#
2
粉丝:0人 关注:1人

对于不懂python的人来说,可以用excel的自动填充功能,依据第一条完整的配置命令自动填充生成所有修改名字和射频信道的脚本,再把excel生成的脚本粘贴到word文档去格式化,再从word文档中复制粘贴到txt文本,这样也是可以的🤪

暂无评论

#
3
粉丝:7人 关注:0人

第一版有缺陷bug的代码分享一下吧,要求是excel中登记的一样的房间号要连续登记,不能乱登记!

import openpyxl as xl
import sys
import re


class Logger(object):
   
def __init__(self, fileN="Default.log"):
       
self.terminal = sys.stdout
       
self.log = open(fileN, "a")

   
def write(self, message):
       
self.terminal.write(message)
       
self.log.write(message)

   
def flush(self):
       
pass


sys.stdout = Logger("D:\\wlan_apname.txt")  # 将输出结果保存到D

wb = xl.load_workbook('wlan_aps.xlsx')   # 加载一个wlan_aps.xlsxexcel文件
sheet = wb['Sheet1']  # 工作表名Sheet1

messages = []  # room房间号初始化为空列表
ap_maces = []  # apmac地址初始化为空列表
for row in range(3, sheet.max_row + 1):   # 确定行数范围从3max_row
    # -----------------------------------------------------------------------
    # Func Name       : Automated script to modify ap name
    # Date Created    : 2020-03-18
    # Author          : H3CTE--3771
    # History         :
    # Date           Author                      Modification
    # ------------------------------------------------------------------------
   
room_cell = sheet.cell(row, 3)
    mac_address_cell = sheet.cell(row
, 4)
    room =
str(room_cell.value)
    mac_values = mac_address_cell.value
    mac_add = re.compile(
r'(\w\w\w\w)(\w\w\w\w)(\w\w\w\w)')
    mac = mac_add.search(mac_values)
   
# print(mac.group())
   
new_ap_mac = (mac.group(1) + '-' + mac.group(2) + '-' + mac.group(3)).lower()
   
# print(new_ap_mac)
   
messages.append(room)  # 将房间号组成一个列表
       
ap_maces.append(new_ap_mac)

for rooms in messages:
   
if messages.count(rooms) >= 2:  # 找出messages列表中重复2次以上的房间号rooms
       
i = messages.count(rooms)
        index = messages.index(rooms)
       
for ii in range(i):
            messages[index + ii] =
'{}-{}'.format(rooms, ii + 1)
           
# 更新rooms重复的元素的值,比如重复3次,则rooms值更换为rooms-1,rooms-2,rooms-3

ap_rename = dict(zip(ap_maces, messages))


def wlan():
   
for message in messages:
       
print(f'wlan service-template {message[:4]}')
       
print(" undo service-template enable")
       
print(" " + f'ssid {message[:4]}')
       
print(" " + "vlan 68")
       
print(" " + "client association-location ap")
       
print(" " + "client forwarding-location ap")
       
print("vlan 68")
       
print(" " + "client-security authentication-location ap")
       
print(" " + "service-template enable")

   
for k, v in ap_rename.items():
       
print(f'wlan rename-ap {k} {v}')
       
print(f'wlan ap {v}')
       
print(' radio 1')
       
print(' radio disable')
       
print(f' service-template {v[:4]}')
       
print(' radio enable')


if __name__ == '__main__':
    wlan()


暂无评论

#
4

官方自带神器vbs,

可实现百万AP的 名字,序列号,信道,服务模板,以及其他精确配置的excel,

转换为可以直接粘贴的txt脚本[草泥马]

搞个python针对性太高

暂无评论

回复

分享扩散:

提出建议

    +

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

确定

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

注册后可访问此模块

跳转hclhub

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