Add files via upload
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,136 @@
|
||||
"""
|
||||
华为设备接口配置模板
|
||||
支持配置接口IP、状态、带宽、描述等操作
|
||||
"""
|
||||
|
||||
def configure_interface_ip(interface: str, ip_address: str, subnet_mask: str) -> str:
|
||||
"""
|
||||
配置接口IP地址
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1
|
||||
ip_address: IP地址
|
||||
subnet_mask: 子网掩码
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"interface {interface}",
|
||||
f"ip address {ip_address} {subnet_mask}",
|
||||
"undo shutdown",
|
||||
"quit"
|
||||
]
|
||||
return "\n".join(commands)
|
||||
|
||||
def configure_interface_state(interface: str, state: str = "up") -> str:
|
||||
"""
|
||||
配置接口状态
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1
|
||||
state: 接口状态,up或down
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"interface {interface}"
|
||||
]
|
||||
|
||||
if state.lower() == "up":
|
||||
commands.append("undo shutdown")
|
||||
elif state.lower() == "down":
|
||||
commands.append("shutdown")
|
||||
|
||||
commands.append("quit")
|
||||
return "\n".join(commands)
|
||||
|
||||
def configure_interface_description(interface: str, description: str) -> str:
|
||||
"""
|
||||
配置接口描述
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1
|
||||
description: 接口描述
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"interface {interface}",
|
||||
f"description {description}",
|
||||
"quit"
|
||||
]
|
||||
return "\n".join(commands)
|
||||
|
||||
def configure_interface_speed(interface: str, speed: str) -> str:
|
||||
"""
|
||||
配置接口速率
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1
|
||||
speed: 速率,如10, 100, 1000, auto
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"interface {interface}",
|
||||
f"speed {speed}",
|
||||
"quit"
|
||||
]
|
||||
return "\n".join(commands)
|
||||
|
||||
def configure_interface_duplex(interface: str, duplex: str) -> str:
|
||||
"""
|
||||
配置接口双工模式
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1
|
||||
duplex: 双工模式,full, half, auto
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"interface {interface}",
|
||||
f"duplex {duplex}",
|
||||
"quit"
|
||||
]
|
||||
return "\n".join(commands)
|
||||
|
||||
def show_interface(interface: str = None) -> str:
|
||||
"""
|
||||
显示接口信息
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1,为None时显示所有接口
|
||||
|
||||
Returns:
|
||||
显示命令字符串
|
||||
"""
|
||||
if interface:
|
||||
return f"display interface {interface}"
|
||||
else:
|
||||
return "display interface brief"
|
||||
|
||||
def show_ip_interface(interface: str = None) -> str:
|
||||
"""
|
||||
显示接口IP信息
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1,为None时显示所有接口
|
||||
|
||||
Returns:
|
||||
显示命令字符串
|
||||
"""
|
||||
if interface:
|
||||
return f"display ip interface {interface}"
|
||||
else:
|
||||
return "display ip interface brief"
|
||||
@@ -0,0 +1,81 @@
|
||||
"""
|
||||
华为设备的拓扑发现命令模板
|
||||
主要支持LLDP协议的邻居发现
|
||||
"""
|
||||
|
||||
def get_lldp_neighbors():
|
||||
"""获取LLDP邻居列表"""
|
||||
return "display lldp neighbor brief"
|
||||
|
||||
def get_lldp_neighbors_detail():
|
||||
"""获取LLDP邻居详细信息"""
|
||||
return "display lldp neighbor verbose"
|
||||
|
||||
def enable_lldp():
|
||||
"""全局启用LLDP"""
|
||||
return "lldp enable"
|
||||
|
||||
def enable_lldp_interface(interface: str):
|
||||
"""在指定接口启用LLDP"""
|
||||
return f"""interface {interface}
|
||||
lldp enable
|
||||
quit"""
|
||||
|
||||
def get_interface_brief():
|
||||
"""获取接口简要信息"""
|
||||
return "display ip interface brief"
|
||||
|
||||
def get_interface_description():
|
||||
"""获取接口描述"""
|
||||
return "display interface description"
|
||||
|
||||
def get_lldp_interface(interface: str):
|
||||
"""获取指定接口的LLDP信息"""
|
||||
return f"display lldp neighbor interface {interface}"
|
||||
|
||||
def get_lldp_statistics():
|
||||
"""获取LLDP统计信息"""
|
||||
return "display lldp statistics"
|
||||
|
||||
def get_vlan_brief():
|
||||
"""获取VLAN简要信息"""
|
||||
return "display vlan"
|
||||
|
||||
def get_mac_address_table():
|
||||
"""获取MAC地址表"""
|
||||
return "display mac-address"
|
||||
|
||||
def get_interface_statistics():
|
||||
"""获取接口统计信息"""
|
||||
return "display interface"
|
||||
|
||||
def get_arp_table():
|
||||
"""获取ARP表(用于三层拓扑分析)"""
|
||||
return "display arp"
|
||||
|
||||
def get_routing_table():
|
||||
"""获取路由表"""
|
||||
return "display ip routing-table"
|
||||
|
||||
def get_stp_brief():
|
||||
"""获取STP简要信息"""
|
||||
return "display stp brief"
|
||||
|
||||
def get_device_info():
|
||||
"""获取设备基本信息"""
|
||||
return "display device"
|
||||
|
||||
def get_system_info():
|
||||
"""获取系统信息"""
|
||||
return "display version"
|
||||
|
||||
def discover_full_topology():
|
||||
"""发现完整拓扑的命令序列"""
|
||||
commands = [
|
||||
"display lldp neighbor verbose",
|
||||
"display ip interface brief",
|
||||
"display interface description",
|
||||
"display vlan",
|
||||
"display mac-address"
|
||||
]
|
||||
return commands
|
||||
@@ -0,0 +1,91 @@
|
||||
"""
|
||||
华为设备VLAN配置模板
|
||||
支持创建VLAN、配置VLAN名称、将接口添加到VLAN等操作
|
||||
"""
|
||||
|
||||
def create_vlan(vlan_id: str, vlan_name: str = None) -> str:
|
||||
"""
|
||||
创建VLAN
|
||||
|
||||
Args:
|
||||
vlan_id: VLAN ID
|
||||
vlan_name: VLAN名称(可选)
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"vlan {vlan_id}"
|
||||
]
|
||||
|
||||
if vlan_name:
|
||||
commands.append(f"description {vlan_name}")
|
||||
|
||||
commands.append("quit")
|
||||
return "\n".join(commands)
|
||||
|
||||
def add_interface_to_vlan(interface: str, vlan_id: str, mode: str = "access") -> str:
|
||||
"""
|
||||
将接口添加到VLAN
|
||||
|
||||
Args:
|
||||
interface: 接口名称,如 GigabitEthernet0/0/1
|
||||
vlan_id: VLAN ID
|
||||
mode: 接口模式,access或trunk
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"interface {interface}"
|
||||
]
|
||||
|
||||
if mode.lower() == "access":
|
||||
commands.append("port link-type access")
|
||||
commands.append(f"port default vlan {vlan_id}")
|
||||
elif mode.lower() == "trunk":
|
||||
commands.append("port link-type trunk")
|
||||
commands.append(f"port trunk allow-pass vlan {vlan_id}")
|
||||
|
||||
commands.append("quit")
|
||||
return "\n".join(commands)
|
||||
|
||||
def delete_vlan(vlan_id: str) -> str:
|
||||
"""
|
||||
删除VLAN
|
||||
|
||||
Args:
|
||||
vlan_id: VLAN ID
|
||||
|
||||
Returns:
|
||||
配置命令字符串
|
||||
"""
|
||||
commands = [
|
||||
"system-view",
|
||||
f"undo vlan {vlan_id}",
|
||||
"quit"
|
||||
]
|
||||
return "\n".join(commands)
|
||||
|
||||
def show_vlan() -> str:
|
||||
"""
|
||||
显示VLAN信息
|
||||
|
||||
Returns:
|
||||
显示命令字符串
|
||||
"""
|
||||
return "display vlan"
|
||||
|
||||
def show_vlan_detail(vlan_id: str) -> str:
|
||||
"""
|
||||
显示特定VLAN的详细信息
|
||||
|
||||
Args:
|
||||
vlan_id: VLAN ID
|
||||
|
||||
Returns:
|
||||
显示命令字符串
|
||||
"""
|
||||
return f"display vlan {vlan_id}"
|
||||
Reference in New Issue
Block a user