zoukankan      html  css  js  c++  java
  • 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('
    
    ')
     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('
    ')
    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('
    ') 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 + '
    '
    19         else:
    20             new_line += line + '
    '
    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('
    ')
    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)
  • 相关阅读:
    npm执行清理缓存失败npm cache clean
    Vue中计算属性(computed)和监听属性函数watch的比较
    vue生命周期函数
    vue自定义指令
    vue 自定义过滤器
    vue 自定义全局按键修饰符
    线性回归模型
    python常用模块
    KNN算法的实现
    python集合(set)的运算
  • 原文地址:https://www.cnblogs.com/fuyuteng/p/12320369.html
Copyright © 2011-2022 走看看