首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python的pynetfilter_conntrack库

如何使用python的pynetfilter_conntrack库
EN

Stack Overflow用户
提问于 2015-01-09 12:31:08
回答 2查看 1.1K关注 0票数 2

我正在尝试编写一个python程序来列出已建立的TCP连接。我找到了pynetfilter_conntrack模块。我已经使用pip install pynetfilter_conntrack安装了。在导入库时,我得到了如下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/pynetfilter_conntrack/__init__.py", line 4, in <module>
    from pynetfilter_conntrack.func import *
  File "/usr/local/lib/python2.7/dist-packages/pynetfilter_conntrack/func.py", line 6, in <module>
    library = cdll.LoadLibrary("libnetfilter_conntrack.so.1")
  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: libnetfilter_conntrack.so.1: cannot open shared object file: No such file or directory

和固定使用命令

代码语言:javascript
复制
sudo ln -s  /usr/lib/libnetfilter_conntrack.so.3.1.3 /usr/lib/libnetfilter_conntrack.so.1

我搜索了一下,但是我找不到关于如何在一些示例程序中使用它的文档。而且它的wiki站点目前也在关闭。

http://software.inl.fr/trac/trac.cgi/wiki/pynetfilter_conntrack.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-06 15:16:18

网页已关闭,由于赞助发展的完成。但是github上有一个新保持器试图阻止库的最终死亡。

正如我所看到的,这个回购(0.5)版本目前正在开发中,但是它得到了一个示例,它将为您提供使用甚至0.4.2版本的关键想法。

代码语言:javascript
复制
from netifaces AF_INET
import pynetfilter_conntrack

# Print source ip, port and sent bytes
ct = pynetfilter_conntrack.Conntrack()
for item in ct.dump_table(AF_INET):
    print item.orig_ipv4_src, item.orig_port_src, item.repl_counter_bytes
票数 1
EN

Stack Overflow用户

发布于 2016-07-12 07:01:45

亚历山大的回答很有帮助。但不幸的是,这对我没有用。因此,我搜索并修改了上面的一些代码(可能是不同版本的pynetfilter_conntrack)。

代码语言:javascript
复制
import netifaces
import pynetfilter_conntrack

# Print source ip, port and sent bytes
ct = pynetfilter_conntrack.Conntrack()
'''
ct.dump_table(netifaces.AF_INET)--> returns the 2 values of tuple. one is list of objects and another is number of connections I guess. So the bellow change
'''
for item in ct.dump_table(netifaces.AF_INET)[0]:
   print item.orig_ipv4_src, item.orig_port_src, item.repl_counter_bytes

谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27860646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档