我正在尝试编写一个python程序来列出已建立的TCP连接。我找到了pynetfilter_conntrack模块。我已经使用pip install pynetfilter_conntrack安装了。在导入库时,我得到了如下错误:
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和固定使用命令
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.
发布于 2015-07-06 15:16:18
网页已关闭,由于赞助发展的完成。但是github上有一个新保持器试图阻止库的最终死亡。
正如我所看到的,这个回购(0.5)版本目前正在开发中,但是它得到了一个示例,它将为您提供使用甚至0.4.2版本的关键想法。
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发布于 2016-07-12 07:01:45
亚历山大的回答很有帮助。但不幸的是,这对我没有用。因此,我搜索并修改了上面的一些代码(可能是不同版本的pynetfilter_conntrack)。
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谢谢!
https://stackoverflow.com/questions/27860646
复制相似问题