mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 08:11:00 +00:00
b942f98f37
+ This means support for any freebsd version (note that I only tested 11-CURRENT and 9)
25 lines
766 B
Python
25 lines
766 B
Python
import sys
|
|
|
|
|
|
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:
|
|
if sys.platform.startswith("freebsd"):
|
|
# strip parentheses for FreeBSD pfctl
|
|
s = s[3][1:-1].split(":")
|
|
else:
|
|
s = s[4].split(":")
|
|
|
|
if len(s) == 2:
|
|
return s[0], int(s[1])
|
|
raise RuntimeError("Could not resolve original destination.")
|