Skip to content

Commit d13697e

Browse files
committed
Fix IPv4 addresses being saved as IPv6; cleanup
1 parent f63bca2 commit d13697e

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

netflowwriter.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def _pgwriter_write(pgwriter, ts, client_ip, IN_BYTES, PROTOCOL, DIRECTION, L4_D
6969
2, INPUT_SNMP,
7070
2, OUTPUT_SNMP,
7171
)
72-
if address_family == socket.AF_INET6:
72+
if address_family != socket.AF_INET6:
7373
buf2 = struct.pack('!i4s4si4s4s',
7474
8, IPV4_ADDRESS_PREFIX, IPVx_DST_ADDR,
7575
8, IPV4_ADDRESS_PREFIX, IPVx_SRC_ADDR,
@@ -215,10 +215,12 @@ def _get_data(buffer):
215215
# if f.data.get("IP_PROTOCOL_VERSION", 4) == 6:
216216
if not f.data.get("IPV6_DST_ADDR", None) is None:
217217
address_family = socket.AF_INET6
218-
ipvX = "IPV6"
218+
dst = socket.inet_pton(address_family, f.data["IPV6_DST_ADDR"])
219+
src = socket.inet_pton(address_family, f.data["IPV6_SRC_ADDR"])
219220
else:
220221
address_family = socket.AF_INET
221-
ipvX = "IPV4"
222+
dst = socket.inet_aton(f.data["IPV4_DST_ADDR"])
223+
src = socket.inet_aton(f.data["IPV4_SRC_ADDR"])
222224

223225
yield (
224226
ts,
@@ -231,8 +233,8 @@ def _get_data(buffer):
231233
f.data["INPUT_SNMP"],
232234
f.data["OUTPUT_SNMP"],
233235
address_family,
234-
socket.inet_pton(address_family, f.data[f"{ipvX}_DST_ADDR"]),
235-
socket.inet_pton(address_family, f.data[f"{ipvX}_SRC_ADDR"]),
236+
dst,
237+
src,
236238
)
237239
except KeyError:
238240
log.exception(f"[{client_ip}] Error decoding v9 flow. Contents: {repr(f.data)}")

0 commit comments

Comments
 (0)