学习环境:windows11和python3.14,搭配wmware,搭配Cisco路由器虚拟机,Liunx虚拟机和python3.11,TraeIDE。20年资深网工,CCIE 1937X SECURITY。1.创建一个Python脚本,打印一台网络设备的基本信息
定义以下变量,并使用print打印出设备信息卡片:
hostname = "C8Kv1"
ip = "192.168.1.1"
vendor = "Cisco"
model = "C8000v"
os_version = "IOS-XE 17.3.4"
打印效果如下:
========== 设备信息 ==========
设备名称: C8Kv1
管理地址: 192.168.1.1
厂商: Cisco
型号: C8000v
系统版本: IOS-XE 17.3.4
==============================
提示: 使用字符串拼接(+)将变量和文字连接在一起即可。
脚本方案1:
hostname = "C8Kv1"
ip = "192.168.1.1"
vendor = "Cisco"
model = "C8000v"
os_version = "IOS-XE 17.3.4"
output = ("========== 设备信息 ==========\n设备名称: " + hostname + "\n管理地址: " + ip +
"\n厂商: "+ vendor + "\n型号: " + model + "\n系统版本: " + os_version +
"\n" + "==============================\n")
print(output)
方案2:
'os_version': 'IOS-XE 17.3.4'output=f"========== 设备信息 ==========\n 设备名称: {device['name']}\n 管理地址: {device['ip']}\n 厂商: {device['vendor']}\n 型号: {device['model']}\n 系统版本: {device['os_version']}\n =============================="方案2的办法通过了设定字符和调用字符的逻辑,更方便定义好的内容被调用,增加扩展性# 定义设备信息变量(你可以根据实际情况修改这些值)hostname ="SW1"model ="S5560"os_version ="7.1.070"output =(f"========== 设备信息 ==========\n"f"==========================================\n") 方案3看起来代码会更整齐,更具有逻辑性,也是用的调用关系,可读性强,我更喜欢。2.创建一个随机产生IP地址的代码
导入random模块,随机产生网络IPv4地址。
import random
ip = ""
ip += str(random.randint(1, 255))
for i in range(3):
ip += "." + str(random.randint(0, 255))
print(ip)
3.打印一张简单的IP地址规划表
假设你负责一个小型网络,有3台设备,请定义变量并打印如下格式的IP规划表:
========== IP地址规划表 ==========
设备名称管理地址角色
-----------------------------------------
CoreSwitch 10.1.1.1 核心交换机
Firewall 10.1.1.2 防火墙
WLC 10.1.1.3 无线控制器
=========================================
提示: 可以直接用多个print语句,也可以尝试用 \t (Tab) 来对齐。
脚本:
device_list = [
{"hostname": "CoreSwitch", "mgmt_ip":"10.1.1.1", "role": "核心交换机"},
{"hostname": "FireWall", "mgmt_ip":"10.1.1.2", "role": "防火墙"},
{"hostname": "WLC", "mgmt_ip":"10.1.1.3", "role": "无线控制器"}
]
print("=" * 17 + " IP地址规划列表 " + "=" * 17)
print("设备名称" + "\t" + "管理地址" + "\t" + "角色")
print("-" * 50)
for device in device_list:
print(f'{device["hostname"]:15}\t{device["mgmt_ip"]:15}\t{device["role"]:15}')
print("=" * 50)