1

如何在 Linux 和 Windows 中获取 Python 中的网络信息?我尝试在 Ubuntu 12.10 64 位上的 Python 2.7 中使用 netinfo 包(版本 0.3.2),但使用此包会使句柄未关闭,如下所示。在我的情况下,它不被接受。

导入网络信息

def countOpenFiles():
    导入资源、fcntl、os
    n_open = 0
    名称 = []
    软、硬 = resource.getrlimit(resource.RLIMIT_NOFILE)
    对于范围内的 fd(0,软):
        尝试:
            f = fcntl.fcntl(fd, fcntl.F_GETFD)
            n_open += 1
        除了 IOError:
            继续
    返回 n_open

对于范围内的 i (10):
    netinfo.get_ip('eth0')
    打印 countOpenFiles()

它产生:

4
5
6
7
8
9
10
11
12
13

我想有类似的 netinfo 包没有资源泄漏。

谢谢你的帮助。

4

1 回答 1

0

你到底想做什么?据我所知,您不计算 eth0 文件句柄,而是计算所有文件句柄。如果你只是不想打开 IP 文件句柄,你可以在 Linux 下使用 lsof (shelltool)。

lsof -u 你的用户 | grep IPv4 不仅仅是 eth0,但我不知道如何过滤接口。

于 2013-02-07T14:56:58.217 回答