diff options
Diffstat (limited to 'libmproxy/platform/lsof.py')
-rw-r--r-- | libmproxy/platform/lsof.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libmproxy/platform/lsof.py b/libmproxy/platform/lsof.py new file mode 100644 index 00000000..25c0e33f --- /dev/null +++ b/libmproxy/platform/lsof.py @@ -0,0 +1,17 @@ +import re + +def lookup(address, port, s): + """ + Parse the pfctl state output s, to look up the destination host + matching the client (address, port). + + Returns an (address, port) tuple, or None. + """ + spec = "%s:%s"%(address, port) + for i in s.split("\n"): + if "ESTABLISHED" in i and spec in i: + m = re.match(".* (\S*)->%s" % spec, i) + if m: + s = m.group(1).split(":") + if len(s) == 2: + return s[0], int(s[1]) |