#!/usr/bin/env python

 from subprocess import PIPE,Popen
import re def getIfconfig():
p = Popen(['ifconfig'],stdout=PIPE)
data = p.stdout.read().split('\n\n')
return [i for i in data if i and not i.startswith('lo')] def parseIfconfig(data):
re_devname = re.compile(r'(br|eth|lo|em|virbr|bond)[\d:]+')
re_mac = re.compile(r'HWaddr ([0-9A-F:]{17})',re.M)
re_ip = re.compile(r'inet addr:([\d\.]{7,15})',re.M)
devname = re_devname.search(data)
if devname:
devname = devname.group()
else:
devname = ''
mac = re_mac.search(data)
if mac:
mac = mac.group(1)
else:
mac = ''
ip =re_ip.search(data)
if ip:
ip = ip.group(1)
else:
ip = ''
return {devname : [ip,mac]} if __name__ == '__main__':
data = getIfconfig()
for i in data:
print parseIfconfig(i)

python编程实例-使用正则收集IP信息的更多相关文章

  1. python学习:使用正则收集ip信息

        使用正则表达式收集主机信息        #!/usr/bin/env python   from subprocess import Popen, PIPE import re def ge ...

  2. python编程实例-收集主机信息

    收集主机信息: 主机名 ip 操作系统版本osver 服务器厂商vendor 服务器型号:product 服务器序列号:sn CPU型号:cpu_model CPU核数:cpu_num 内存大小:Me ...

  3. python学习:收集ip信息

    #!/usr/bin/env python   from subprocess import Popen, PIPE   def getIfconfig():     p = Popen(['ifco ...

  4. python编程实例-dmidecode系统信息搜集

    #!/usr/bin/env python from subprocess import PIPE,Popen def getDmi(): p = Popen(['dmidecode'],stdout ...

  5. python编程实例-统计apache进程占用的物理内存

    #!/usr/bin/env python import os from subprocess import PIPE,Popen def getPids(): p = Popen(['pidof', ...

  6. python读取文件通过正则过滤需要信息然后保存到新文件里

    import osimport reimport fileinput def getDataFromFile():        rt = "/(.*)/(.*).apk"     ...

  7. python学习_数据处理编程实例(二)

    在上一节python学习_数据处理编程实例(二)的基础上数据发生了变化,文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年 ...

  8. Python并发编程实例教程

    有关Python中的并发编程实例,主要是对Threading模块的应用,文中自定义了一个Threading类库. 一.简介 我们将一个正在运行的程序称为进程.每个进程都有它自己的系统状态,包含内存状态 ...

  9. Python 收集主机信息

    写一个 python 脚本,收集以下信息 ( CentOS 6 ) : IP地址 <ip>    主机名 <hostname>    操作系统版本 <osver>  ...

随机推荐

  1. 006-重装yum

    报错情况: There was a problem importing one of the Python modulesrequired to run yum. The error leading ...

  2. OpenAI gym的建模思想

    一.强化学习问题需要描述那些内容 强化学习中最主要的两类对象是“个体”和“环境”,其次还有一些像“即时奖励”.“收获”.“状态”.“行为”.“价值”.“策略”.“学习”.“控制”等概念.这些概念把个体 ...

  3. 通用TryParse

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Refle ...

  4. iOS Xcode 8 快捷键 (注释 失效 处理)

    在升级后,好用的VVDocumment 插件不能用了.(但是苹果这次内置了好多好用的插件,也有自己的注释功能了 AddDocumentation) 上网上有查到 传播很广泛的一条信息 "这个 ...

  5. 根据Django后台的ajax大全

    一.什么是ajax 1.1 什么是JSON? AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语 ...

  6. 20145230《Java程序设计》第5周学习总结

    20145230 <Java程序设计>第5周学习总结 教材学习内容 本周主要学习的内容是关于异常处理的,感觉这部分内容对我们这种初学者 来说非常重要.举个例子,倘若你在编写一个Java程序 ...

  7. JSP JavaBeans

    Javabean的设计原则 公有类 无参公有构造方法 私有属性 getter和setter方法 在Jsp页面中如何使用Javabeans? 像使用普通Java类一样,创建JavaBeans实例. 在J ...

  8. Python 元组Tuple概念和操作

    # 元组概念:有序的不可变的元素集合 # 和列表的区别就是, 元组元素不能修改 # 定义 # 一个元素的写法 # (666,) t = (666,) #正确写法 t = (666) #错误写法,括号当 ...

  9. oracle中检索结果汉字首字母排序详解

    今天写需求,要求将结果按照成本中心首字母排序,平且空放在最前面. 进入正题: 1.使用oracle自带的函数: 按照首字母排序:nlssort(xxx,'NLS_SORT=SCHINESE_PINYI ...

  10. 【bzoj4765】普通计算姬(双重分块)

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4765 这道题已经攒了半年多了...因为懒,一直没去写...所以今天才把这道题写出来... ...