• 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)
  • 相关阅读:
    如何修改容器内的/etc/resolv.conf
    OpenShift DNS的机制
    OpenShift 容器日志和应用日志分离问题
    python办公自动化(一)PPTX
    python装饰器 语法糖
    一步一步FLASK(一)
    linux python 安装 pymssql
    定制flask-admin的主页
    复制pycharm虚拟环境
    离线安装pycharm数据库驱动
  • 原文地址:https://www.cnblogs.com/fuyuteng/p/12320369.html
Copyright © 2020-2023  润新知