适合网络攻城狮学习的Python——正则表达式在实战中的使用
Posted 新网工李白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了适合网络攻城狮学习的Python——正则表达式在实战中的使用相关的知识,希望对你有一定的参考价值。
📢身为新时代的网络工程师,传统的路由交换已经满足不了日常。NetDevOps要求网络工程师让编程和自动化成为日常的口袋技能。网络工程师们让我们偷偷学python,然后经验所有人!🤪
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢未来很长,值得我们全力奔赴更美好美好的生活✨
📢本文主要写python中正则表达式在实战中的使用。✊
1️⃣背景
- 练习python中的正则表达式
- Linux中用命令ifconfig显示出来的网卡的信息太多得不到关键信息
2️⃣目的
用python脚本抓取linux中网卡ens33的关键信息并清楚得展示出来
ifconfig查看网卡信息
3️⃣python脚本
import re
import os
# 得到具体网卡的信息,保存在ifconfig_中
ifconfig_result = os.popen('ifconfig ' + 'ens33').read()
# 正则表达式查找ip,掩码,广播和MAC地址
ipv4_add = re.findall('inet\\s+(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})', ifconfig_result)[0]
netmask = re.findall('netmask\\s+(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})', ifconfig_result)[0]
broadcast = re.findall('broadcast\\s+(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})', ifconfig_result)[0]
mac_addr = re.findall('ether\\s+([a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2}:[a-z0-9]{2})', ifconfig_result)[0]
# 格式化字符串
format_string = '{0:10}:{1}'
print(format_string.format('ipv4_add', ipv4_add))
print(format_string.format('netmask', netmask))
print(format_string.format('broadcast', broadcast))
print(format_string.format('mac_addr', mac_addr))
# 产生网关的IP地址
net_addr_section = ipv4_add[0:10]
ipv4_gw = net_addr_section + '1'
# 打印网关的IP地址
print('\\n我们假设网关IP地址的最后一位为1,因此网关IP地址为:' + ipv4_gw + '\\n')
ping_result = os.popen('ping ' + ipv4_gw + ' -c 1').read()
re_ping_result = re.findall('1\\sreceived', ping_result)
if re_ping_result:
print('网关可达!')
else:
print('网关不可达!')
4️⃣执行脚本
是不是很清楚啊,点赞 👍 收藏⭐拿去用吧✨
以上是关于适合网络攻城狮学习的Python——正则表达式在实战中的使用的主要内容,如果未能解决你的问题,请参考以下文章