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‘]}

时间: 2024-10-26 16:22:57

python学习:使用正则收集ip信息的相关文章

Python:收集IP信息

下面通过两种方法实现收集IP信息 1.通过 ifconfig 命令输出IP信息,并以"\n\n"切片分成不同的网卡块 2.通过 ifconfig 命令输出IP信息,并以第一个字符在顶格的方式切片分成不同的网卡块 # vim ip1.py #!/usr/bin/env python from subprocess import Popen, PIPE def getIfconfig(): p = Popen(['ifconfig'], stdout=PIPE) data = p.stdo

python 收集ip信息

熟悉python 对字符文本的分割和获取信息的方法. 文章结构: (1) 对ifconfig 命令输出的信息,进行分析 (2) 用两种方法对输出实现分析,获取系统的ip信息,包括:网卡名,ip地址和MAC地址 1. ifconfig 命令输出信息分析 先上图: 如上图,我们需要统计的三个信息是网卡名,eth0,eth0:1,eth1 这三块网卡,至于'lo' 网卡就不用统计了.每张网卡,还需要记录MAC 地址和ip 地址. 看到上面的信息,它是以每张网卡的信息作为一段的,而且都是以网卡顶行开始,

使用python收集IP信息

[[email protected] systeminformation]# vim devname_1.py  #!/usr/bin/env python from subprocess import Popen,PIPE def getIfconfig():     tuple_addr = ('lo','vir','vnet','em3','em4') #有些网卡以这些字符开头,排除在外     p = Popen(['ifconfig'], stdout=PIPE)     data =

python学习之——爬取网页信息

爬取网页信息 说明:正则表达式有待学习,之后完善此功能 #encoding=utf-8 import urllib import re import os #获取网络数据到指定文件 def getHtml(url,fname): #fname = 'C:\\Users\cuiliting\\Desktop\\weather_forecast.txt' data =[] page = urllib.urlopen(url) html = page.read() data.append(html)

python学习day19正则模块

正则模块:正则所有程序员都要用到正则爬虫方向要求对正则表达式掌握牢固正则表达式:是一种客观存在的规则re模块,是python提供的操作正则表达式的工具正则表达式在所有语言中都是通用的中括号在正咋中是字符集,只能正序,由小到大.(点)是匹配除了换行以外所有字符\w小写w匹配字母或数字或下划线\s匹配任意的空白符\n匹配一个换行符\d匹配所有数字\t匹配一个制表符\b匹配一个单词的结尾\^匹配字符串的开始   在字符集里面就是\$匹配字符串结尾\W大写的w  匹配非字母或数字或下划线\ID匹配非数字

Python学习笔记--正则

#正则匹配nginx配置文件upstream整段 re.compile(r'upstream\s*xxx.xx.com\s*[^}]*+\}') #获取用户ip和组ip user_uid = os.stat(conf_full_path).st_uid user_gid = os.stat(conf_full_path).st_gid #正则匹配nginx server配置 ip, port = '192.168.1.1', 80 del_pattern = re.compile(r'\s*se

python学习-使用ip138查询ip地址归属地

#!/usr/bin/python #coding:utf-8 import urllib import re import sys def ISIP(s):     return len([i for i in s.split('.') if (0<= int(i)<= 255)])== 4 def URL(ip): uip=urllib.urlopen('http://wap.ip138.com/ip.asp?ip=%s'%ip) fip=uip.read() rip=re.compile

Python学习进程

1周第1天 主要是变量的学习(11月8日) 1.1 python安装(win和linux下)1.2 ipython安装及使用1.3 变量的定义1.4 变量赋值1.5 运算符(赋值.算术.关系.逻辑)1.6 表达式相关练习:1) 写一个四则运算器,要求从键盘读取数字   2) 体会input()与raw_input()区别扩展知识:十进与十六进制互相转换.十进制与字符串互相转换,int().hex().str() 1周第2天 数据类型(11月9日) 1.1 数值类型(整型.长整型.浮点型.复数型)

收集主机信息

收集主机信息,包括: 1.主机名:hostname 2.IP地址:ip 3.操作系统版本:osver 4.服务器厂商:vendor 5.服务器型号:product 6.服务器序列号:sn 7.cpu型号:cpu_module 8.cpu核心数量:cpu_num 9.内存大小 收集IP信息 [[email protected] systeminformation]# vim sysinformation.py from subprocess import Popen,PIPE def getIfc