用于unix/linux/macosx的python ifconfig包装器

ifcfg的Python项目详细描述


https://badge.fury.io/py/ifcfg.svghttps://travis-ci.org/ftao/python-ifcfg.svghttp://codecov.io/github/ftao/python-ifcfg/coverage.svg?branch=master

ifcfg是用于解析ifconfigipconfig在python中输出。它有助于提取IP等信息, 网络掩码、MAC地址、主机名等。

对于不带ifconfig的较新unix系统,包含到ip的回退。窗户 通过ipconfig支持系统(英语)。

用法

import ifcfg
import json

for name, interface in ifcfg.interfaces().items():
    # do something with interface
    print interface['device']
    print interface['inet']         # First IPv4 found
    print interface['inet4']        # List of ips
    print interface['inet6']
    print interface['netmask']
    print interface['broadcast']

default = ifcfg.default_interface()

“ifcfg.interfaces()”转储到json的输出类似于 以下内容:

$ python -m ifcfg.cli | python -mjson.tool
{
    "eth0": {
        "broadcast": "172.16.217.255",
        "ether": "00:0c:29:0c:da:5d",
        "flags": "4163<up,broadcast,running,multicast> ",
        "hostname": "derks-vm.local",
        "inet": "172.16.217.10",
        "inet4": ["172.16.217.10"],
        "inet6": ["fe80::20c:29ff:fe0c:da5d"],
        "mtu": "1500",
        "name": "eth0",
        "netmask": "255.255.255.0",
    },
    "lo": {
        "ether": null,
        "flags": "73<up,loopback,running> ",
        "hostname": "localhost",
        "inet": "127.0.0.1",
        "inet4": ["127.0.0.1"],
        "inet6": ["::1"],
        "mtu": "16436",
        "name": "lo",
        "netmask": "255.0.0.0",
    },
    "virbr0": {
        "broadcast": "192.168.122.255",
        "ether": "52:54:00:5b:70:0d",
        "flags": "4099<up,broadcast,multicast> ",
        "hostname": "derks-vm.local",
        "inet": "192.168.122.1",
        "inet4": ["192.168.122.1"],
        "inet6": [],
        "mtu": "1500",
        "name": "virbr0",
        "netmask": "255.255.255.0",
    }
}

开发

要引导开发,请使用python虚拟环境,并安装dev需求:

# Install dev dependencies
pip install -r requirements_dev.txt
# Run tests locally
make test

您还可以安装tox并在特定环境中运行测试:

pip install tox
tox -e py27

提交和打开prs之前,请确保已运行预提交挂钩:

pip install pre-commit
pre-commit install

发行说明

0.18

  • 增加对非字母数字字符接口的支持,例如eth int35和36

0.17

  • 在回归+添加测试之后还原ip
  • ip命令添加macosx支持

0.16

  • 在新的“inet4”字段中支持多个IPv4地址
  • 包装清理

0.15

  • 支持桥接接口名称24

0.14

  • 替换python 2语法21

0.13

  • 非英语Windows系统上的进一步崩溃17
  • 已知问题:本地化的非英语窗口解析不起作用18

0.12

  • 修复非英语Windows系统上的编码崩溃问题

0.11

在6个beta版本之后,我们不再认为这是beta软件,而是考虑 它是稳定的-我们可能永远不会跟上所有不同的探测方法 不同系统的网络属性。任何被错误检测并能被更新的东西, 也可以作为新的补丁版本来实现和发布。

所以让我们ship early,ship往往代替。

这个版本试图清理代码库(节省!)并介绍 Windows兼容性。

  • 添加与Windows兼容的ipconfig输出解析
  • 处理非Unicode终端(特别是Windows+Mac)
  • 正在从ifcfg.get_parser
  • 中删除定义错误的encoding关键字arg
  • 删除了no op linux kernel 2.x解析和kernelkeyword arg
  • 已删除类ifcfg.IfcfgParser,请改用UnixParser
  • 所有字符串均为UTF-8,也采用PY 2.7格式
  • 现在只保证结果集中包含跨平台功能: ['inet', 'ether', 'inet6', 'netmask']
  • IPv6地址现在存储在列表中。
  • 删除了前缀和scopeid,因为它们应该为每个ipv6地址添加,而不是 接口
  • 允许导入ifcfg,不管操作系统是否 辨识。
  • 删除ifcfg.exc模块
  • 修复Linux(Sergej Vasiljev)上某些包含字符的接口名

0.10.1

  • 修复了编码问题,防止检测到default_interface

0.10

  • 支持不带ifconfig的unix系统,例如较新的ubuntu/debian
  • 重构为使用src/层次结构

许可证

ifcfg库是开源的,在bsd下发布 许可证(三条)。请查看随附的许可证文件 软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android将字符串拆分为数组   java如何读取底层HttpServerExchange对象中的响应数据?   在jenkins上安装gitplugin时出现java错误   java DecimalFormat格式decimal,用于保留可变数量的尾随零   java Jaxws、spring和SpringBeanAutowiringSupport   Gson中抽象类的java反序列化   监视Windows服务器中的UDP数据包丢失,Java   java从侦听器调用所有者类   java Scala和Robocode类循环错误   java映像未上载到数据库   java如何将XML文件直接写入zip存档?   java为什么需要EventSourcingHandler(在聚合对象中)?   接受特定对象或其子类型的java通用方法   java Spring安全过滤器映射在特定Url模式上禁用