python - 如何从输入中接受一个mac地址并在python中打印下三个macaddress
问题描述
我是 Python 和编码的新手。我的要求很简单。
我将提示用户输入 MAC 地址。输入后,我将打印接下来的 3 个 mac 地址。例如,如果输入的 MAC 地址是 00:00:00:00:00:00,我应该能够以 00:00:00:00:00:01 00:00:00 的格式打印接下来的 3 个 MAC 地址: 00:00:02 00:00:00:00:00:03
请帮忙
解决方案
首先使用正则表达式来验证您的 MAC 地址。如果格式正确,则只需删除:
字符即可为您提供一个可以转换为整数的 HEX 值。使用此整数计算接下来的 3 个值。对于每个整数,将值转换回十六进制字符串(前面有适当的零填充)。然后打印输出,将丢失的:
字符放回:4
import re
mac_address = input('Please enter a MAC address: ')
valid = re.match('(?=[a-f0-9]{2}:){5}[a-f0-9]{2}', mac_address, re.I)
if valid:
mac_as_int = int(mac_address.replace(':', ''), 16)
for address in range(mac_as_int + 1, mac_as_int + 4):
output = '{:012X}'.format(address)
print('{}:{}:{}:{}:{}:{}'.format(output[0:2], output[2:4], output[4:6], output[6:8], output[8:10], output[10:12]))
else:
print('Invalid MAC address')
这将正确处理值延续到下一个块的情况:
Please enter a MAC address: 00:00:00:00:00:00
00:00:00:00:00:01
00:00:00:00:00:02
00:00:00:00:00:03
Please enter a MAC address: 11:22:33:44:55:FE
11:22:33:44:55:FF
11:22:33:44:56:00
11:22:33:44:56:01
推荐阅读
- php - 调试、捕获和记录 WordPress 插件的 XML/SOAP 请求
- mysql - 使用一个查询的结果作为变量输入到 MySQL 中的其他查询
- superset - Superset 的 Docker 映像的默认登录名?
- ios - 更新 UIImageView 的 UIImage 时的 EXC_BAD_ACCESS (code=1)
- javascript - 如何将 javascript 变量放入 html action=""
- php - 如何使用 whereIn Laravel 查询构建器方法仅获取每个数组条件的最新/第一个版本
- pug - How do I prevent Pug from collapsing all whitespace between two tags?
- java - Selenium java如何从调试器中判断元素是否过时
- qt - Qt:打开后PNG图像透明度丢失
- symfony4 - Sonata Admin 显示不同的日期