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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习:使用正则收集ip信息相关的知识,希望对你有一定的参考价值。

 
 
使用正则表达式收集主机信息 
 
 
 
#!/usr/bin/env python
 
from subprocess import Popen, PIPE
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|em|virbr|lo|bond[\d:]+‘,re.M)           使用了正则表达式来收集ip信息 
    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__‘:
    dic = {}
    data = getIfconfig()
    for i in data:
        dic.update(parseIfconfig(i))
        print dic
 
 
[[email protected] day03]# python 13_ip.py
{‘eth‘: [‘192.168.1.200‘, ‘00:0C:29:B7:57:8F‘]}
 

以上是关于python学习:使用正则收集ip信息的主要内容,如果未能解决你的问题,请参考以下文章

Python 正则表达式

使用python收集IP信息

使用Python收集获取Linux系统主机信息

使用Python收集获取Linux系统主机信息

python 收集ip信息

使用 python 收集获取 Linux 系统主机信息