From e2dc7ba09d54fb4fa4af796d5c37cd36174f8897 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Tue, 1 Jan 2013 11:13:56 +1300 Subject: First draft of OSX transparent proxy mode. --- libmproxy/platform/pf.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 libmproxy/platform/pf.py (limited to 'libmproxy/platform/pf.py') diff --git a/libmproxy/platform/pf.py b/libmproxy/platform/pf.py new file mode 100644 index 00000000..062d3311 --- /dev/null +++ b/libmproxy/platform/pf.py @@ -0,0 +1,16 @@ + +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:ESTABLISHED" in i and spec in i: + s = i.split() + if len(s) > 4: + s = s[4].split(":") + if len(s) == 2: + return s[0], int(s[1]) -- cgit v1.2.3