aboutsummaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
Diffstat (limited to 'example')
-rw-r--r--example/ndpiReader.c9
-rw-r--r--example/reader_util.c8
-rw-r--r--example/reader_util.h7
3 files changed, 24 insertions, 0 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c
index 9ad07f82c..3dde6be3c 100644
--- a/example/ndpiReader.c
+++ b/example/ndpiReader.c
@@ -1514,6 +1514,15 @@ static void printFlow(u_int32_t id, struct ndpi_flow_info *flow, u_int16_t threa
}
break;
+ case INFO_NATPMP:
+ if (flow->natpmp.internal_port != 0 && flow->natpmp.ip[0] != '\0')
+ {
+ fprintf(out, "[Result: %u][Internal Port: %u][External Port: %u][External Address: %s]",
+ flow->natpmp.result_code, flow->natpmp.internal_port, flow->natpmp.external_port,
+ flow->natpmp.ip);
+ }
+ break;
+
case INFO_FTP_IMAP_POP_SMTP:
if (flow->ftp_imap_pop_smtp.username[0] != '\0')
{
diff --git a/example/reader_util.c b/example/reader_util.c
index 37e5bf4b4..927d22ab2 100644
--- a/example/reader_util.c
+++ b/example/reader_util.c
@@ -1107,6 +1107,14 @@ void process_ndpi_collected_info(struct ndpi_workflow * workflow, struct ndpi_fl
ndpi_snprintf(flow->softether.fqdn, sizeof(flow->softether.fqdn), "%s",
flow->ndpi_flow->protos.softether.fqdn);
}
+ /* NATPMP */
+ else if(is_ndpi_proto(flow, NDPI_PROTOCOL_NATPMP)) {
+ flow->info_type = INFO_NATPMP;
+ flow->natpmp.result_code = flow->ndpi_flow->protos.natpmp.result_code;
+ flow->natpmp.internal_port = flow->ndpi_flow->protos.natpmp.internal_port;
+ flow->natpmp.external_port = flow->ndpi_flow->protos.natpmp.external_port;
+ inet_ntop(AF_INET, &flow->ndpi_flow->protos.natpmp.external_address.ipv4, &flow->natpmp.ip[0], sizeof(flow->natpmp.ip));
+ }
/* DISCORD */
else if(is_ndpi_proto(flow, NDPI_PROTOCOL_DISCORD) && !is_ndpi_proto(flow, NDPI_PROTOCOL_TLS) &&
flow->ndpi_flow->protos.discord.client_ip[0] != '\0') {
diff --git a/example/reader_util.h b/example/reader_util.h
index 26510f700..703e33094 100644
--- a/example/reader_util.h
+++ b/example/reader_util.h
@@ -167,6 +167,7 @@ enum info_type {
INFO_FTP_IMAP_POP_SMTP,
INFO_TLS_QUIC_ALPN_VERSION,
INFO_TLS_QUIC_ALPN_ONLY,
+ INFO_NATPMP,
};
// flow tracking
@@ -241,6 +242,12 @@ typedef struct ndpi_flow_info {
char platform[32];
char services[48];
} tivoconnect;
+ struct {
+ uint16_t result_code;
+ uint16_t internal_port;
+ uint16_t external_port;
+ char ip[16];
+ } natpmp;
};
ndpi_serializer ndpi_flow_serializer;