使用 python 获取 Linux 的 IP 信息(通过 ifconfig 命令)

我们可以使用 python 代码通过调用 ifconfig 命令来获取 Linux 主机的 IP 相关信息,包括:网卡名称、MAC地址、IP地址等。

第一种实现方式:

 1 #!/usr/bin/python
 2 #encoding: utf-8
 3
 4 from subprocess import Popen, PIPE
 5
 6 def getIfconfig():
 7     p = Popen([‘ifconfig‘], stdout = PIPE)
 8     data = p.stdout.read().split(‘\n\n‘)
 9     return [i for i in data if i and not i.startswith(‘lo‘)]
10
11 def parseIfconfig(data):
12     dic = {}
13     for devs in data:
14         lines = devs.split(‘\n‘)
15         devname = lines[0].split()[0]
16         macaddr = lines[0].split()[-1]
17         ipaddr  = lines[1].split()[1].split(‘:‘)[1]
18         dic[devname] = [ipaddr, macaddr]
19     return dic
20
21
22 if __name__ == ‘__main__‘:
23     data = getIfconfig()
24     print parseIfconfig(data)

第二种实现方式:

 1 #!/usr/bin/python
 2 #encoding: utf-8
 3
 4 from subprocess import Popen, PIPE
 5
 6 def getIP():
 7     p = Popen([‘ifconfig‘], stdout = PIPE, stderr = PIPE)
 8     stdout, stderr = p.communicate()
 9     data = [i for i in stdout.split(‘\n‘) if i]
10     return data
11
12 def genIP(data):
13     new_line = ‘‘
14     lines = []
15     for line in data:
16         if line[0].strip():
17             lines.append(new_line)
18             new_line = line + ‘\n‘
19         else:
20             new_line += line + ‘\n‘
21     lines.append(new_line)
22     return [i for i in lines if i and not i.startswith(‘lo‘)]
23
24 def parseIP(data):
25     dic = {}
26     for devs in data:
27         lines = devs.split(‘\n‘)
28         devname = lines[0].split()[0]
29         macaddr = lines[0].split()[-1]
30         ipaddr  = lines[1].split()[1].split(‘:‘)[1]
31         dic[devname] = [ipaddr, macaddr]
32     return dic
33
34 if __name__ == ‘__main__‘:
35     data = getIP()
36     nics = genIP(data)
37     print parseIP(nics)
时间: 2024-10-14 12:48:32

使用 python 获取 Linux 的 IP 信息(通过 ifconfig 命令)的相关文章

python 获取linux的内存信息

1.安装psutil源码 https://pypi.python.org/pypi?:action=display&name=psutil#downloads 找到psutil-5.2.2.tar.gz 点击即可下载 shell # tar xzvf psutil-5.2.2.tar.gz shell # cd psutil-5.2.2 shell # python setup.py install 2.使用psutil获取内存信息 终端输入python shell # python Pytho

python学习之最简单的获取本机ip信息的小程序

文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉python好麻烦啊,每次都要import. 可以在程序里直接read出来,也可以先在命令行执行ifconfig > xx.txt,这样可以直接访问倒入后的文本信息. 这个小程序有个问题,与朋友讨论了还没解决彻底,如果用findall是可以匹配所有的,但是怎么解决用match只匹配一次的问题呢,当然如果

Python获取两个ip之间的所有ip

int_ip = lambda x: '.'.join([str(x/(256**i)%256) for i in range(3,-1,-1)]) ip_int = lambda x:sum([256**j*int(i) for j,i in enumerate(x.split('.')[::-1])]) def get_ips(ip1,ip2): f=open('ips.txt','w') ip1_num = ip_int(ip1) ip2_num = ip_int(ip2) for i i

Python 获取本机IP地址

import socket #获取本机IP地址 self.local_ip = socket.gethostbyname(socket.gethostname()) print (self.local_ip) python 判断本机是否联网 1 timeout = 200 2 host = 'www.baidu.com' 3 port = 80 4 s=socket.socket() 5 s.settimeout(timeout) 6 status = s.connect_ex((host,po

Python获取内网IP

Python 获取本机内网IP 本文记录使用Python获取本机IP的两种方法. 通过hostname来获取本机IP import socket print(socket.gethostbyname(socket.gethostname())) 此方法是先获取hostname,然后在通过hostname来查看本机的IP.不推荐此方法,因为若是在/etc/hosts中将hostnam设置为127.0.0.1,那么获取到的就是127.0.0.1,而非本机的真实IP. 通过UDP获取本机IP impo

python获取原图GPS位置信息,轻松得到你的活动轨迹

一.图像EXIF信息 介绍 EXIF(Exchangeable image file format,可交换图像文件格式)是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,如拍摄时间.图像分辨率.感光值.GPS坐标等. Exif最初由日本电子工业发展协会在1996年制定,版本为1.0.1998年,升级到2.1,增加了对音频文件的支持.2002年3月,发表了2.2版. Exif可以附加于JPEG.TIFF.RIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件

python获取Linux信息

刚开始学习Python,用Python写了一个获取Linux服务器信息的脚本,在debian和centos上测试通过.首先需要安装一个psutil库,在安装psutil之前需要安装python的开发工具包 #debian  apt-get install python-dev #centos  yum install python-devel psutil下载页面 https://pypi.python.org/pypi?:action=display&name=psutil#downloads

用Python获取Linux资源信息的三种方法

方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu

Python获取Linux或Windows系统的基本信息

前段时间写了一篇博文名为<利用Python脚本获取Windows和Linux的系统版本信息>,本篇博文利用这篇文章中的知识提供一个增强版本的获取信息的Python脚本.执行后,看起来就像登录Ubuntu Linux系统时提示的motd信息一样,可以看到: 系统的类型.发行版本(具体信息).内核版本等 当前系统的时间.时区 系统每一个CPU核心的负载和CPU整体负载 进程数量 根分区的磁盘空间,Windows下默认C盘 登录的用户总数和每一个登录到系统的用户的信息 内存和交换分区的利用率 默认网