Open fujiapple852 opened 12 months ago
Current WIP:
trip -u google.com --tcp -m dot -C 10 | dot -Tpng > path.png
Produces:
Coming back from #875
it looks nice in the example you linked to. Is that example produced as a DOT file? Do you have the DOT file for reference? I have just done a fresh run, here you go, see below.
I think to do this these reports should become subcommand such that multiple per-subcommand flags could be added I would do "both". Having a switch to activate in one go all the opiniated default. And having the others switchs if people want to add only what they need.
### Scapy Multi-Traceroute (MTR) DOT Graph Results (2023-12-20 17:11:46.559516) ###
digraph mtr {
graph [bgcolor=transparent,ranksep=0.75];
node [shape="ellipse",fontname="Sans-Serif",fontsize=11,color="black",gradientangle=270,fillcolor="white:#a0a0a0",style="filled"];
### ASN Clusters ###
subgraph cluster_15169 {
tooltip="AS: 15169 - [Google]";
color="#608686";
fillcolor="#60868630";
style="filled,rounded";
node [color="#608686",gradientangle=270,fillcolor="white:#608686",style="filled"];
fontsize=10;
fontname="Sans-Serif";
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B><FONT POINT-SIZE="11">AS: 15169</FONT></B></TD></TR><TR><TD>[Google]</TD></TR></TABLE>>;
labelloc="t";
penwidth=3;
"74.125.147.10" [tooltip="Hop Host: 74.125.147.10"];
"72.14.204.184" [tooltip="Hop Host: 72.14.204.184"];
"108.170.244.225" [tooltip="Hop Host: 108.170.244.225"];
"142.250.234.41" [tooltip="Hop Host: 142.250.234.41"];
"142.250.234.43" [tooltip="Hop Host: 142.250.234.43"];
"108.170.244.161" [tooltip="Hop Host: 108.170.244.161"];
"72.14.202.232" [tooltip="Hop Host: 72.14.202.232"];
"72.14.218.40" [tooltip="Hop Host: 72.14.218.40"];
"72.14.210.158" [tooltip="Hop Host: 72.14.210.158"];
"72.14.233.77" [tooltip="Hop Host: 72.14.233.77"];
### MTR Target Cluster ###
subgraph cluster_142_250_74_228 {
tooltip="MTR Target: www.google.com";
color="darkgreen";
fontsize=11;
fontname="Sans-Serif";
gradientangle=270;
fillcolor="white:#a0a0a0";
style="filled,rounded";
penwidth=2;
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B>Target: www.google.com</B></TD></TR><TR><TD><FONT POINT-SIZE="9">Hop Ranges (T1: 1 → 9, T2: 1 → 9, T5: 1 → 9, T6: 1 → 9, T9: 1 → 9, T10: 1 → 9)</FONT></TD></TR></TABLE>>;
labelloc="b";
"142.250.74.228";
}
}
subgraph cluster_6453 {
tooltip="AS: 6453 - [TATA Communications]";
color="#60baba";
fillcolor="#60baba30";
style="filled,rounded";
node [color="#60baba",gradientangle=270,fillcolor="white:#60baba",style="filled"];
fontsize=10;
fontname="Sans-Serif";
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B><FONT POINT-SIZE="11">AS: 6453</FONT></B></TD></TR><TR><TD>[TATA Communications]</TD></TR></TABLE>>;
labelloc="t";
penwidth=3;
"80.231.245.41" [tooltip="Hop Host: 80.231.245.41"];
"195.219.50.74" [tooltip="Hop Host: 195.219.50.74"];
"80.231.246.13" [tooltip="Hop Host: 80.231.246.13"];
"80.231.246.26" [tooltip="Hop Host: 80.231.246.26"];
}
subgraph cluster_14061 {
tooltip="AS: 14061 - [DigitalOcean]";
color="#60ffff";
fillcolor="#60ffff30";
style="filled,rounded";
node [color="#60ffff",gradientangle=270,fillcolor="white:#60ffff",style="filled"];
fontsize=10;
fontname="Sans-Serif";
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B><FONT POINT-SIZE="11">AS: 14061</FONT></B></TD></TR><TR><TD>[DigitalOcean]</TD></TR></TABLE>>;
labelloc="t";
penwidth=3;
"Unk8" [tooltip="Hop Host: Unk8"];
"Unk9" [tooltip="Hop Host: Unk9"];
"Unk10" [tooltip="Hop Host: Unk10"];
"Unk15" [tooltip="Hop Host: Unk15"];
"Unk16" [tooltip="Hop Host: Unk16"];
"Unk17" [tooltip="Hop Host: Unk17"];
### MTR Target Cluster ###
subgraph cluster_64_226_122_113 {
tooltip="MTR Target: openwrt.org";
color="darkgreen";
fontsize=11;
fontname="Sans-Serif";
gradientangle=270;
fillcolor="white:#a0a0a0";
style="filled,rounded";
penwidth=2;
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B>Target: openwrt.org</B></TD></TR><TR><TD><FONT POINT-SIZE="9">Hop Ranges (T3: 1 → 14, T4: 1 → 14, T7: 1 → 14, T8: 1 → 14, T11: 1 → 14, T12: 1 → 14)</FONT></TD></TR></TABLE>>;
labelloc="b";
"64.226.122.113";
}
}
### Probe Target Cluster ###
subgraph cluster_probe_Title {
tooltip="Multi-Traceroute (MTR) Probe: 192.168.1.104";
color="darkorange";
gradientangle=270;
fillcolor="white:#a0a0a0";
style="filled,rounded";
penwidth=3;
fontsize=11;
fontname="Sans-Serif";
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0"><TR><TD ALIGN="center"><B>Multi-Traceroute (MTR) Probe</B></TD></TR><TR><TD ALIGN="center"><FONT POINT-SIZE="9">2020-02-18 17:00:04</FONT></TD></TR><TR><TD ALIGN="center"><FONT POINT-SIZE="9">Target: www.google.com (142.250.74.228 → T1, T2, T5, T6, T9, T10)</FONT></TD></TR><TR><TD ALIGN="center"><FONT POINT-SIZE="9">Target: openwrt.org (64.226.122.113 → T3, T4, T7, T8, T11, T12)</FONT></TD></TR></TABLE>>;
labelloc="t";
"192.168.1.104";
}
### Default Gateway Cluster ###
subgraph cluster_default_gateway {
tooltip="Default Gateway Host: 192.168.1.1";
color="goldenrod";
gradientangle=270;
fillcolor="white:#b8860b30";
style="filled,rounded";
penwidth=3;
fontsize=11;
fontname="Sans-Serif";
label=<<TABLE BORDER="0" CELLBORDER="0" CELLSPACING="0" ALIGN="center"><TR><TD><B><FONT POINT-SIZE="9">Default Gateway</FONT></B></TD></TR></TABLE>>;
"192.168.1.1" [shape="diamond",fontname="Sans-Serif",fontsize=11,color="black",gradientangle=270,fillcolor="white:goldenrod",style="rounded,filled",tooltip="Default Gateway Host: 192.168.1.1"];
}
### Probe Begin Traces ###
"192.168.1.104" [shape="record",color="black",gradientangle=270,fillcolor="white:darkorange",style="filled,rounded",label="Probe: 192.168.1.104\nNetwork Interface: lan0|{TCP: http(80)|{<BT1>T1|<BT3>T3|<BT5>T5|<BT7>T7|<BT9>T9|<BT11>T11}}|{TCP: https(443)|{<BT2>T2|<BT4>T4|<BT6>T6|<BT8>T8|<BT10>T10|<BT12>T12}}",tooltip="Begin Host Probe: 192.168.1.104"];
### Target Endpoints ###
"142.250.74.228" [shape="record",color="black",gradientangle=270,fillcolor="#00ff00:#005400",style="filled,rounded",label="Resolved Target\n142.250.74.228|{{<ET1>T1|<ET5>T5|<ET9>T9}|http(80) SA}|{{<ET2>T2|<ET6>T6|<ET10>T10}|https(443) SA}",tooltip="MTR Resolved Target: 142.250.74.228"];
"64.226.122.113" [shape="record",color="black",gradientangle=270,fillcolor="#00ff00:#005400",style="filled,rounded",label="Resolved Target\n64.226.122.113|{{<ET3>T3|<ET7>T7|<ET11>T11}|http(80) SA}|{{<ET4>T4|<ET8>T8|<ET12>T12}|https(443) SA}",tooltip="MTR Resolved Target: 64.226.122.113"];
### Blackholes ###
### ICMP Destination Unreachable Hops ###
### Nodes With Padding ###
"108.170.244.225" [label=<<BR/>108.170.244.225<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"142.250.234.41" [label=<<BR/>142.250.234.41<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"142.250.234.43" [label=<<BR/>142.250.234.43<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"193.252.160.45" [label=<<BR/>193.252.160.45<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"80.231.245.41" [label=<<BR/>80.231.245.41<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"195.219.50.74" [label=<<BR/>195.219.50.74<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"80.231.246.13" [label=<<BR/>80.231.246.13<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
"80.231.246.26" [label=<<BR/>80.231.246.26<BR/><FONT POINT-SIZE="8">Padding</FONT>>,shape="box3d",color="black",gradientangle=270,fillcolor="white:red",style="filled,rounded"];
### Traces ###
### T1 -> ('192.168.1.104', '142.250.74.228', 6, 80) ###
edge [color="#a07070"];
"192.168.1.104":BT1:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 2.561ms</FONT>>,edgetooltip="Trace: 1:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.561ms))",labeltooltip="Trace: 1:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.561ms)"];
"192.168.1.1" -> "Unk0" [edgetooltip="Trace: 1:2, 192.168.1.1 -> Unk0"];
"Unk0" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 6.709ms</FONT>>,edgetooltip="Trace: 1:3, Unk0 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (6.709ms))",labeltooltip="Trace: 1:3, RTT: 192.168.1.104 <-> 193.253.94.198 (6.709ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 28.852ms</FONT>>,edgetooltip="Trace: 1:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (28.852ms))",labeltooltip="Trace: 1:4, RTT: 192.168.1.104 <-> 193.252.160.53 (28.852ms)"];
"193.252.160.53" -> "Unk1" [edgetooltip="Trace: 1:5, 193.252.160.53 -> Unk1"];
"Unk1" -> "74.125.147.10" [label=<<FONT POINT-SIZE="8"> 18.251ms</FONT>>,edgetooltip="Trace: 1:6, Unk1 -> 74.125.147.10 (RTT: 192.168.1.104 <-> 74.125.147.10 (18.251ms))",labeltooltip="Trace: 1:6, RTT: 192.168.1.104 <-> 74.125.147.10 (18.251ms)"];
"74.125.147.10" -> "108.170.244.225" [label=<<FONT POINT-SIZE="8"> 16.814ms</FONT>>,edgetooltip="Trace: 1:7, 74.125.147.10 -> 108.170.244.225 (RTT: 192.168.1.104 <-> 108.170.244.225 (16.814ms))",labeltooltip="Trace: 1:7, RTT: 192.168.1.104 <-> 108.170.244.225 (16.814ms)"];
"108.170.244.225" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8"> 162.772ms</FONT>>,edgetooltip="Trace: 1:8, 108.170.244.225 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (162.772ms))",labeltooltip="Trace: 1:8, RTT: 192.168.1.104 <-> 142.250.234.41 (162.772ms)"];
"142.250.234.41" -> "142.250.74.228":ET1:n [style="solid",label=<<FONT POINT-SIZE="8"> 161.942ms</FONT>>,edgetooltip="Trace: 1:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (161.942ms))",labeltooltip="Trace: 1:9, RTT: 192.168.1.104 <-> 142.250.74.228 (161.942ms)"];
### T2 -> ('192.168.1.104', '142.250.74.228', 6, 443) ###
edge [color="#a04040"];
"192.168.1.104":BT2:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 2.865ms</FONT>>,edgetooltip="Trace: 2:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.865ms))",labeltooltip="Trace: 2:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.865ms)"];
"192.168.1.1" -> "Unk2" [edgetooltip="Trace: 2:2, 192.168.1.1 -> Unk2"];
"Unk2" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 30.754ms</FONT>>,edgetooltip="Trace: 2:3, Unk2 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (30.754ms))",labeltooltip="Trace: 2:3, RTT: 192.168.1.104 <-> 193.253.94.198 (30.754ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 20.723ms</FONT>>,edgetooltip="Trace: 2:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (20.723ms))",labeltooltip="Trace: 2:4, RTT: 192.168.1.104 <-> 193.252.160.53 (20.723ms)"];
"193.252.160.53" -> "Unk3" [edgetooltip="Trace: 2:5, 193.252.160.53 -> Unk3"];
"Unk3" -> "72.14.204.184" [label=<<FONT POINT-SIZE="8"> 17.435ms</FONT>>,edgetooltip="Trace: 2:6, Unk3 -> 72.14.204.184 (RTT: 192.168.1.104 <-> 72.14.204.184 (17.435ms))",labeltooltip="Trace: 2:6, RTT: 192.168.1.104 <-> 72.14.204.184 (17.435ms)"];
"72.14.204.184" -> "108.170.244.225" [label=<<FONT POINT-SIZE="8"> 171.199ms</FONT>>,edgetooltip="Trace: 2:7, 72.14.204.184 -> 108.170.244.225 (RTT: 192.168.1.104 <-> 108.170.244.225 (171.199ms))",labeltooltip="Trace: 2:7, RTT: 192.168.1.104 <-> 108.170.244.225 (171.199ms)"];
"108.170.244.225" -> "142.250.234.43" [label=<<FONT POINT-SIZE="8"> 169.621ms</FONT>>,edgetooltip="Trace: 2:8, 108.170.244.225 -> 142.250.234.43 (RTT: 192.168.1.104 <-> 142.250.234.43 (169.621ms))",labeltooltip="Trace: 2:8, RTT: 192.168.1.104 <-> 142.250.234.43 (169.621ms)"];
"142.250.234.43" -> "142.250.74.228":ET2:n [style="solid",label=<<FONT POINT-SIZE="8"> 163.556ms</FONT>>,edgetooltip="Trace: 2:9, 142.250.234.43 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (163.556ms))",labeltooltip="Trace: 2:9, RTT: 192.168.1.104 <-> 142.250.74.228 (163.556ms)"];
### T3 -> ('192.168.1.104', '64.226.122.113', 6, 80) ###
edge [color="#a02020"];
"192.168.1.104":BT3:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 3.157ms</FONT>>,edgetooltip="Trace: 3:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (3.157ms))",labeltooltip="Trace: 3:1, RTT: 192.168.1.104 <-> 192.168.1.1 (3.157ms)"];
"192.168.1.1" -> "Unk4" [edgetooltip="Trace: 3:2, 192.168.1.1 -> Unk4"];
"Unk4" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 7.241ms</FONT>>,edgetooltip="Trace: 3:3, Unk4 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (7.241ms))",labeltooltip="Trace: 3:3, RTT: 192.168.1.104 <-> 193.253.94.198 (7.241ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 55.143ms</FONT>>,edgetooltip="Trace: 3:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (55.143ms))",labeltooltip="Trace: 3:4, RTT: 192.168.1.104 <-> 193.252.160.53 (55.143ms)"];
"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8"> 39.600ms</FONT>>,edgetooltip="Trace: 3:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (39.600ms))",labeltooltip="Trace: 3:5, RTT: 192.168.1.104 <-> 193.252.160.45 (39.600ms)"];
"193.252.160.45" -> "Unk5" [edgetooltip="Trace: 3:6, 193.252.160.45 -> Unk5"];
"Unk5" -> "Unk6" [edgetooltip="Trace: 3:7, Unk5 -> Unk6"];
"Unk6" -> "Unk7" [edgetooltip="Trace: 3:8, Unk6 -> Unk7"];
"Unk7" -> "80.231.245.41" [label=<<FONT POINT-SIZE="8"> 97.607ms</FONT>>,edgetooltip="Trace: 3:9, Unk7 -> 80.231.245.41 (RTT: 192.168.1.104 <-> 80.231.245.41 (97.607ms))",labeltooltip="Trace: 3:9, RTT: 192.168.1.104 <-> 80.231.245.41 (97.607ms)"];
"80.231.245.41" -> "195.219.50.74" [label=<<FONT POINT-SIZE="8"> 67.035ms</FONT>>,edgetooltip="Trace: 3:10, 80.231.245.41 -> 195.219.50.74 (RTT: 192.168.1.104 <-> 195.219.50.74 (67.035ms))",labeltooltip="Trace: 3:10, RTT: 192.168.1.104 <-> 195.219.50.74 (67.035ms)"];
"195.219.50.74" -> "Unk8" [edgetooltip="Trace: 3:11, 195.219.50.74 -> Unk8"];
"Unk8" -> "Unk9" [edgetooltip="Trace: 3:12, Unk8 -> Unk9"];
"Unk9" -> "Unk10" [edgetooltip="Trace: 3:13, Unk9 -> Unk10"];
"Unk10" -> "64.226.122.113":ET3:n [style="solid",label=<<FONT POINT-SIZE="8"> 26.056ms</FONT>>,edgetooltip="Trace: 3:14, Unk10 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (26.056ms))",labeltooltip="Trace: 3:14, RTT: 192.168.1.104 <-> 64.226.122.113 (26.056ms)"];
### T4 -> ('192.168.1.104', '64.226.122.113', 6, 443) ###
edge [color="#7070a0"];
"192.168.1.104":BT4:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 28.520ms</FONT>>,edgetooltip="Trace: 4:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (28.520ms))",labeltooltip="Trace: 4:1, RTT: 192.168.1.104 <-> 192.168.1.1 (28.520ms)"];
"192.168.1.1" -> "Unk11" [edgetooltip="Trace: 4:2, 192.168.1.1 -> Unk11"];
"Unk11" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 75.009ms</FONT>>,edgetooltip="Trace: 4:3, Unk11 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (75.009ms))",labeltooltip="Trace: 4:3, RTT: 192.168.1.104 <-> 193.253.94.198 (75.009ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 45.661ms</FONT>>,edgetooltip="Trace: 4:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (45.661ms))",labeltooltip="Trace: 4:4, RTT: 192.168.1.104 <-> 193.252.160.53 (45.661ms)"];
"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8"> 33.659ms</FONT>>,edgetooltip="Trace: 4:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (33.659ms))",labeltooltip="Trace: 4:5, RTT: 192.168.1.104 <-> 193.252.160.45 (33.659ms)"];
"193.252.160.45" -> "Unk12" [edgetooltip="Trace: 4:6, 193.252.160.45 -> Unk12"];
"Unk12" -> "Unk13" [edgetooltip="Trace: 4:7, Unk12 -> Unk13"];
"Unk13" -> "Unk14" [edgetooltip="Trace: 4:8, Unk13 -> Unk14"];
"Unk14" -> "80.231.245.41" [label=<<FONT POINT-SIZE="8"> 76.770ms</FONT>>,edgetooltip="Trace: 4:9, Unk14 -> 80.231.245.41 (RTT: 192.168.1.104 <-> 80.231.245.41 (76.770ms))",labeltooltip="Trace: 4:9, RTT: 192.168.1.104 <-> 80.231.245.41 (76.770ms)"];
"80.231.245.41" -> "195.219.50.74" [label=<<FONT POINT-SIZE="8"> 60.944ms</FONT>>,edgetooltip="Trace: 4:10, 80.231.245.41 -> 195.219.50.74 (RTT: 192.168.1.104 <-> 195.219.50.74 (60.944ms))",labeltooltip="Trace: 4:10, RTT: 192.168.1.104 <-> 195.219.50.74 (60.944ms)"];
"195.219.50.74" -> "Unk15" [edgetooltip="Trace: 4:11, 195.219.50.74 -> Unk15"];
"Unk15" -> "Unk16" [edgetooltip="Trace: 4:12, Unk15 -> Unk16"];
"Unk16" -> "Unk17" [edgetooltip="Trace: 4:13, Unk16 -> Unk17"];
"Unk17" -> "64.226.122.113":ET4:n [style="solid",label=<<FONT POINT-SIZE="8"> 25.974ms</FONT>>,edgetooltip="Trace: 4:14, Unk17 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (25.974ms))",labeltooltip="Trace: 4:14, RTT: 192.168.1.104 <-> 64.226.122.113 (25.974ms)"];
### T5 -> ('192.168.1.104', '142.250.74.228', 6, 80) ###
edge [color="#704070"];
"192.168.1.104":BT5:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 3.353ms</FONT>>,edgetooltip="Trace: 5:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (3.353ms))",labeltooltip="Trace: 5:1, RTT: 192.168.1.104 <-> 192.168.1.1 (3.353ms)"];
"192.168.1.1" -> "Unk18" [edgetooltip="Trace: 5:2, 192.168.1.1 -> Unk18"];
"Unk18" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 149.808ms</FONT>>,edgetooltip="Trace: 5:3, Unk18 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (149.808ms))",labeltooltip="Trace: 5:3, RTT: 192.168.1.104 <-> 193.253.94.198 (149.808ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 132.370ms</FONT>>,edgetooltip="Trace: 5:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (132.370ms))",labeltooltip="Trace: 5:4, RTT: 192.168.1.104 <-> 193.252.160.53 (132.370ms)"];
"193.252.160.53" -> "Unk19" [edgetooltip="Trace: 5:5, 193.252.160.53 -> Unk19"];
"Unk19" -> "72.14.202.232" [label=<<FONT POINT-SIZE="8"> 89.702ms</FONT>>,edgetooltip="Trace: 5:6, Unk19 -> 72.14.202.232 (RTT: 192.168.1.104 <-> 72.14.202.232 (89.702ms))",labeltooltip="Trace: 5:6, RTT: 192.168.1.104 <-> 72.14.202.232 (89.702ms)"];
"72.14.202.232" -> "108.170.244.161" [label=<<FONT POINT-SIZE="8"> 74.415ms</FONT>>,edgetooltip="Trace: 5:7, 72.14.202.232 -> 108.170.244.161 (RTT: 192.168.1.104 <-> 108.170.244.161 (74.415ms))",labeltooltip="Trace: 5:7, RTT: 192.168.1.104 <-> 108.170.244.161 (74.415ms)"];
"108.170.244.161" -> "142.250.234.43" [label=<<FONT POINT-SIZE="8"> 51.894ms</FONT>>,edgetooltip="Trace: 5:8, 108.170.244.161 -> 142.250.234.43 (RTT: 192.168.1.104 <-> 142.250.234.43 (51.894ms))",labeltooltip="Trace: 5:8, RTT: 192.168.1.104 <-> 142.250.234.43 (51.894ms)"];
"142.250.234.43" -> "142.250.74.228":ET5:n [style="solid",label=<<FONT POINT-SIZE="8"> 33.466ms</FONT>>,edgetooltip="Trace: 5:9, 142.250.234.43 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (33.466ms))",labeltooltip="Trace: 5:9, RTT: 192.168.1.104 <-> 142.250.74.228 (33.466ms)"];
### T6 -> ('192.168.1.104', '142.250.74.228', 6, 443) ###
edge [color="#702040"];
"192.168.1.104":BT6:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 2.392ms</FONT>>,edgetooltip="Trace: 6:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.392ms))",labeltooltip="Trace: 6:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.392ms)"];
"192.168.1.1" -> "Unk20" [edgetooltip="Trace: 6:2, 192.168.1.1 -> Unk20"];
"Unk20" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 140.917ms</FONT>>,edgetooltip="Trace: 6:3, Unk20 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (140.917ms))",labeltooltip="Trace: 6:3, RTT: 192.168.1.104 <-> 193.253.94.198 (140.917ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 113.681ms</FONT>>,edgetooltip="Trace: 6:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (113.681ms))",labeltooltip="Trace: 6:4, RTT: 192.168.1.104 <-> 193.252.160.53 (113.681ms)"];
"193.252.160.53" -> "Unk21" [edgetooltip="Trace: 6:5, 193.252.160.53 -> Unk21"];
"Unk21" -> "72.14.202.232" [label=<<FONT POINT-SIZE="8"> 82.061ms</FONT>>,edgetooltip="Trace: 6:6, Unk21 -> 72.14.202.232 (RTT: 192.168.1.104 <-> 72.14.202.232 (82.061ms))",labeltooltip="Trace: 6:6, RTT: 192.168.1.104 <-> 72.14.202.232 (82.061ms)"];
"72.14.202.232" -> "108.170.244.161" [label=<<FONT POINT-SIZE="8"> 58.330ms</FONT>>,edgetooltip="Trace: 6:7, 72.14.202.232 -> 108.170.244.161 (RTT: 192.168.1.104 <-> 108.170.244.161 (58.330ms))",labeltooltip="Trace: 6:7, RTT: 192.168.1.104 <-> 108.170.244.161 (58.330ms)"];
"108.170.244.161" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8"> 45.056ms</FONT>>,edgetooltip="Trace: 6:8, 108.170.244.161 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (45.056ms))",labeltooltip="Trace: 6:8, RTT: 192.168.1.104 <-> 142.250.234.41 (45.056ms)"];
"142.250.234.41" -> "142.250.74.228":ET6:n [style="solid",label=<<FONT POINT-SIZE="8"> 28.591ms</FONT>>,edgetooltip="Trace: 6:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (28.591ms))",labeltooltip="Trace: 6:9, RTT: 192.168.1.104 <-> 142.250.74.228 (28.591ms)"];
### T7 -> ('192.168.1.104', '64.226.122.113', 6, 80) ###
edge [color="#70a020"];
"192.168.1.104":BT7:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 3.698ms</FONT>>,edgetooltip="Trace: 7:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (3.698ms))",labeltooltip="Trace: 7:1, RTT: 192.168.1.104 <-> 192.168.1.1 (3.698ms)"];
"192.168.1.1" -> "Unk22" [edgetooltip="Trace: 7:2, 192.168.1.1 -> Unk22"];
"Unk22" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 35.026ms</FONT>>,edgetooltip="Trace: 7:3, Unk22 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (35.026ms))",labeltooltip="Trace: 7:3, RTT: 192.168.1.104 <-> 193.253.94.198 (35.026ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 103.679ms</FONT>>,edgetooltip="Trace: 7:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (103.679ms))",labeltooltip="Trace: 7:4, RTT: 192.168.1.104 <-> 193.252.160.53 (103.679ms)"];
"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8"> 398.360ms</FONT>>,edgetooltip="Trace: 7:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (398.360ms))",labeltooltip="Trace: 7:5, RTT: 192.168.1.104 <-> 193.252.160.45 (398.360ms)"];
"193.252.160.45" -> "Unk23" [edgetooltip="Trace: 7:6, 193.252.160.45 -> Unk23"];
"Unk23" -> "Unk24" [edgetooltip="Trace: 7:7, Unk23 -> Unk24"];
"Unk24" -> "Unk25" [edgetooltip="Trace: 7:8, Unk24 -> Unk25"];
"Unk25" -> "Unk26" [edgetooltip="Trace: 7:9, Unk25 -> Unk26"];
"Unk26" -> "Unk27" [edgetooltip="Trace: 7:10, Unk26 -> Unk27"];
"Unk27" -> "Unk28" [edgetooltip="Trace: 7:11, Unk27 -> Unk28"];
"Unk28" -> "Unk29" [edgetooltip="Trace: 7:12, Unk28 -> Unk29"];
"Unk29" -> "Unk30" [edgetooltip="Trace: 7:13, Unk29 -> Unk30"];
"Unk30" -> "64.226.122.113":ET7:n [style="solid",label=<<FONT POINT-SIZE="8"> 262.554ms</FONT>>,edgetooltip="Trace: 7:14, Unk30 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (262.554ms))",labeltooltip="Trace: 7:14, RTT: 192.168.1.104 <-> 64.226.122.113 (262.554ms)"];
### T8 -> ('192.168.1.104', '64.226.122.113', 6, 443) ###
edge [color="#4040a0"];
"192.168.1.104":BT8:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 7.850ms</FONT>>,edgetooltip="Trace: 8:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (7.850ms))",labeltooltip="Trace: 8:1, RTT: 192.168.1.104 <-> 192.168.1.1 (7.850ms)"];
"192.168.1.1" -> "Unk31" [edgetooltip="Trace: 8:2, 192.168.1.1 -> Unk31"];
"Unk31" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 114.024ms</FONT>>,edgetooltip="Trace: 8:3, Unk31 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (114.024ms))",labeltooltip="Trace: 8:3, RTT: 192.168.1.104 <-> 193.253.94.198 (114.024ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 98.112ms</FONT>>,edgetooltip="Trace: 8:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (98.112ms))",labeltooltip="Trace: 8:4, RTT: 192.168.1.104 <-> 193.252.160.53 (98.112ms)"];
"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8"> 391.118ms</FONT>>,edgetooltip="Trace: 8:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (391.118ms))",labeltooltip="Trace: 8:5, RTT: 192.168.1.104 <-> 193.252.160.45 (391.118ms)"];
"193.252.160.45" -> "Unk32" [edgetooltip="Trace: 8:6, 193.252.160.45 -> Unk32"];
"Unk32" -> "Unk33" [edgetooltip="Trace: 8:7, Unk32 -> Unk33"];
"Unk33" -> "80.231.246.13" [label=<<FONT POINT-SIZE="8"> 351.764ms</FONT>>,edgetooltip="Trace: 8:8, Unk33 -> 80.231.246.13 (RTT: 192.168.1.104 <-> 80.231.246.13 (351.764ms))",labeltooltip="Trace: 8:8, RTT: 192.168.1.104 <-> 80.231.246.13 (351.764ms)"];
"80.231.246.13" -> "Unk34" [edgetooltip="Trace: 8:9, 80.231.246.13 -> Unk34"];
"Unk34" -> "Unk35" [edgetooltip="Trace: 8:10, Unk34 -> Unk35"];
"Unk35" -> "Unk36" [edgetooltip="Trace: 8:11, Unk35 -> Unk36"];
"Unk36" -> "Unk37" [edgetooltip="Trace: 8:12, Unk36 -> Unk37"];
"Unk37" -> "Unk38" [edgetooltip="Trace: 8:13, Unk37 -> Unk38"];
"Unk38" -> "64.226.122.113":ET8:n [style="solid",label=<<FONT POINT-SIZE="8"> 214.745ms</FONT>>,edgetooltip="Trace: 8:14, Unk38 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (214.745ms))",labeltooltip="Trace: 8:14, RTT: 192.168.1.104 <-> 64.226.122.113 (214.745ms)"];
### T9 -> ('192.168.1.104', '142.250.74.228', 6, 80) ###
edge [color="#402070"];
"192.168.1.104":BT9:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 99.335ms</FONT>>,edgetooltip="Trace: 9:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (99.335ms))",labeltooltip="Trace: 9:1, RTT: 192.168.1.104 <-> 192.168.1.1 (99.335ms)"];
"192.168.1.1" -> "Unk39" [edgetooltip="Trace: 9:2, 192.168.1.1 -> Unk39"];
"Unk39" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 31.408ms</FONT>>,edgetooltip="Trace: 9:3, Unk39 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (31.408ms))",labeltooltip="Trace: 9:3, RTT: 192.168.1.104 <-> 193.253.94.198 (31.408ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 48.031ms</FONT>>,edgetooltip="Trace: 9:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (48.031ms))",labeltooltip="Trace: 9:4, RTT: 192.168.1.104 <-> 193.252.160.53 (48.031ms)"];
"193.252.160.53" -> "Unk40" [edgetooltip="Trace: 9:5, 193.252.160.53 -> Unk40"];
"Unk40" -> "72.14.218.40" [label=<<FONT POINT-SIZE="8"> 30.158ms</FONT>>,edgetooltip="Trace: 9:6, Unk40 -> 72.14.218.40 (RTT: 192.168.1.104 <-> 72.14.218.40 (30.158ms))",labeltooltip="Trace: 9:6, RTT: 192.168.1.104 <-> 72.14.218.40 (30.158ms)"];
"72.14.218.40" -> "108.170.244.161" [label=<<FONT POINT-SIZE="8"> 16.923ms</FONT>>,edgetooltip="Trace: 9:7, 72.14.218.40 -> 108.170.244.161 (RTT: 192.168.1.104 <-> 108.170.244.161 (16.923ms))",labeltooltip="Trace: 9:7, RTT: 192.168.1.104 <-> 108.170.244.161 (16.923ms)"];
"108.170.244.161" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8"> 18.335ms</FONT>>,edgetooltip="Trace: 9:8, 108.170.244.161 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (18.335ms))",labeltooltip="Trace: 9:8, RTT: 192.168.1.104 <-> 142.250.234.41 (18.335ms)"];
"142.250.234.41" -> "142.250.74.228":ET9:n [style="solid",label=<<FONT POINT-SIZE="8"> 17.244ms</FONT>>,edgetooltip="Trace: 9:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (17.244ms))",labeltooltip="Trace: 9:9, RTT: 192.168.1.104 <-> 142.250.74.228 (17.244ms)"];
### T10 -> ('192.168.1.104', '142.250.74.228', 6, 443) ###
edge [color="#40a040"];
"192.168.1.104":BT10:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 84.860ms</FONT>>,edgetooltip="Trace: 10:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (84.860ms))",labeltooltip="Trace: 10:1, RTT: 192.168.1.104 <-> 192.168.1.1 (84.860ms)"];
"192.168.1.1" -> "Unk41" [edgetooltip="Trace: 10:2, 192.168.1.1 -> Unk41"];
"Unk41" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 23.888ms</FONT>>,edgetooltip="Trace: 10:3, Unk41 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (23.888ms))",labeltooltip="Trace: 10:3, RTT: 192.168.1.104 <-> 193.253.94.198 (23.888ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 39.121ms</FONT>>,edgetooltip="Trace: 10:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (39.121ms))",labeltooltip="Trace: 10:4, RTT: 192.168.1.104 <-> 193.252.160.53 (39.121ms)"];
"193.252.160.53" -> "Unk42" [edgetooltip="Trace: 10:5, 193.252.160.53 -> Unk42"];
"Unk42" -> "72.14.210.158" [label=<<FONT POINT-SIZE="8"> 17.921ms</FONT>>,edgetooltip="Trace: 10:6, Unk42 -> 72.14.210.158 (RTT: 192.168.1.104 <-> 72.14.210.158 (17.921ms))",labeltooltip="Trace: 10:6, RTT: 192.168.1.104 <-> 72.14.210.158 (17.921ms)"];
"72.14.210.158" -> "72.14.233.77" [label=<<FONT POINT-SIZE="8"> 18.740ms</FONT>>,edgetooltip="Trace: 10:7, 72.14.210.158 -> 72.14.233.77 (RTT: 192.168.1.104 <-> 72.14.233.77 (18.740ms))",labeltooltip="Trace: 10:7, RTT: 192.168.1.104 <-> 72.14.233.77 (18.740ms)"];
"72.14.233.77" -> "142.250.234.41" [label=<<FONT POINT-SIZE="8"> 19.503ms</FONT>>,edgetooltip="Trace: 10:8, 72.14.233.77 -> 142.250.234.41 (RTT: 192.168.1.104 <-> 142.250.234.41 (19.503ms))",labeltooltip="Trace: 10:8, RTT: 192.168.1.104 <-> 142.250.234.41 (19.503ms)"];
"142.250.234.41" -> "142.250.74.228":ET10:n [style="solid",label=<<FONT POINT-SIZE="8"> 17.730ms</FONT>>,edgetooltip="Trace: 10:9, 142.250.234.41 -> 142.250.74.228 (RTT: 192.168.1.104 <-> 142.250.74.228 (17.730ms))",labeltooltip="Trace: 10:9, RTT: 192.168.1.104 <-> 142.250.74.228 (17.730ms)"];
### T11 -> ('192.168.1.104', '64.226.122.113', 6, 80) ###
edge [color="#407020"];
"192.168.1.104":BT11:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 2.762ms</FONT>>,edgetooltip="Trace: 11:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (2.762ms))",labeltooltip="Trace: 11:1, RTT: 192.168.1.104 <-> 192.168.1.1 (2.762ms)"];
"192.168.1.1" -> "Unk43" [edgetooltip="Trace: 11:2, 192.168.1.1 -> Unk43"];
"Unk43" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 37.762ms</FONT>>,edgetooltip="Trace: 11:3, Unk43 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (37.762ms))",labeltooltip="Trace: 11:3, RTT: 192.168.1.104 <-> 193.253.94.198 (37.762ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 14.929ms</FONT>>,edgetooltip="Trace: 11:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (14.929ms))",labeltooltip="Trace: 11:4, RTT: 192.168.1.104 <-> 193.252.160.53 (14.929ms)"];
"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8"> 12.022ms</FONT>>,edgetooltip="Trace: 11:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (12.022ms))",labeltooltip="Trace: 11:5, RTT: 192.168.1.104 <-> 193.252.160.45 (12.022ms)"];
"193.252.160.45" -> "Unk44" [edgetooltip="Trace: 11:6, 193.252.160.45 -> Unk44"];
"Unk44" -> "Unk45" [edgetooltip="Trace: 11:7, Unk44 -> Unk45"];
"Unk45" -> "Unk46" [edgetooltip="Trace: 11:8, Unk45 -> Unk46"];
"Unk46" -> "80.231.245.41" [label=<<FONT POINT-SIZE="8"> 105.153ms</FONT>>,edgetooltip="Trace: 11:9, Unk46 -> 80.231.245.41 (RTT: 192.168.1.104 <-> 80.231.245.41 (105.153ms))",labeltooltip="Trace: 11:9, RTT: 192.168.1.104 <-> 80.231.245.41 (105.153ms)"];
"80.231.245.41" -> "Unk47" [edgetooltip="Trace: 11:10, 80.231.245.41 -> Unk47"];
"Unk47" -> "Unk48" [edgetooltip="Trace: 11:11, Unk47 -> Unk48"];
"Unk48" -> "Unk49" [edgetooltip="Trace: 11:12, Unk48 -> Unk49"];
"Unk49" -> "Unk50" [edgetooltip="Trace: 11:13, Unk49 -> Unk50"];
"Unk50" -> "64.226.122.113":ET11:n [style="solid",label=<<FONT POINT-SIZE="8"> 49.476ms</FONT>>,edgetooltip="Trace: 11:14, Unk50 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (49.476ms))",labeltooltip="Trace: 11:14, RTT: 192.168.1.104 <-> 64.226.122.113 (49.476ms)"];
### T12 -> ('192.168.1.104', '64.226.122.113', 6, 443) ###
edge [color="#2020a0"];
"192.168.1.104":BT12:s -> "192.168.1.1" [label=<<FONT POINT-SIZE="8"> 5.344ms</FONT>>,edgetooltip="Trace: 12:1, 192.168.1.104 -> 192.168.1.1 (RTT: 192.168.1.104 <-> 192.168.1.1 (5.344ms))",labeltooltip="Trace: 12:1, RTT: 192.168.1.104 <-> 192.168.1.1 (5.344ms)"];
"192.168.1.1" -> "Unk51" [edgetooltip="Trace: 12:2, 192.168.1.1 -> Unk51"];
"Unk51" -> "193.253.94.198" [label=<<FONT POINT-SIZE="8"> 29.283ms</FONT>>,edgetooltip="Trace: 12:3, Unk51 -> 193.253.94.198 (RTT: 192.168.1.104 <-> 193.253.94.198 (29.283ms))",labeltooltip="Trace: 12:3, RTT: 192.168.1.104 <-> 193.253.94.198 (29.283ms)"];
"193.253.94.198" -> "193.252.160.53" [label=<<FONT POINT-SIZE="8"> 10.805ms</FONT>>,edgetooltip="Trace: 12:4, 193.253.94.198 -> 193.252.160.53 (RTT: 192.168.1.104 <-> 193.252.160.53 (10.805ms))",labeltooltip="Trace: 12:4, RTT: 192.168.1.104 <-> 193.252.160.53 (10.805ms)"];
"193.252.160.53" -> "193.252.160.45" [label=<<FONT POINT-SIZE="8"> 12.579ms</FONT>>,edgetooltip="Trace: 12:5, 193.252.160.53 -> 193.252.160.45 (RTT: 192.168.1.104 <-> 193.252.160.45 (12.579ms))",labeltooltip="Trace: 12:5, RTT: 192.168.1.104 <-> 193.252.160.45 (12.579ms)"];
"193.252.160.45" -> "Unk52" [edgetooltip="Trace: 12:6, 193.252.160.45 -> Unk52"];
"Unk52" -> "80.231.246.26" [label=<<FONT POINT-SIZE="8"> 39.247ms</FONT>>,edgetooltip="Trace: 12:7, Unk52 -> 80.231.246.26 (RTT: 192.168.1.104 <-> 80.231.246.26 (39.247ms))",labeltooltip="Trace: 12:7, RTT: 192.168.1.104 <-> 80.231.246.26 (39.247ms)"];
"80.231.246.26" -> "Unk53" [edgetooltip="Trace: 12:8, 80.231.246.26 -> Unk53"];
"Unk53" -> "Unk54" [edgetooltip="Trace: 12:9, Unk53 -> Unk54"];
"Unk54" -> "Unk55" [edgetooltip="Trace: 12:10, Unk54 -> Unk55"];
"Unk55" -> "Unk56" [edgetooltip="Trace: 12:11, Unk55 -> Unk56"];
"Unk56" -> "Unk57" [edgetooltip="Trace: 12:12, Unk56 -> Unk57"];
"Unk57" -> "Unk58" [edgetooltip="Trace: 12:13, Unk57 -> Unk58"];
"Unk58" -> "64.226.122.113":ET12:n [style="solid",label=<<FONT POINT-SIZE="8"> 42.210ms</FONT>>,edgetooltip="Trace: 12:14, Unk58 -> 64.226.122.113 (RTT: 192.168.1.104 <-> 64.226.122.113 (42.210ms))",labeltooltip="Trace: 12:14, RTT: 192.168.1.104 <-> 64.226.122.113 (42.210ms)"];
### Decoration For Unknown (Unkn) Node Hops ###
"Unk0" [tooltip="Trace: 1:2, Unknown Hop: Unk0",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk1" [tooltip="Trace: 1:5, Unknown Hop: Unk1",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk2" [tooltip="Trace: 2:2, Unknown Hop: Unk2",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk3" [tooltip="Trace: 2:5, Unknown Hop: Unk3",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk4" [tooltip="Trace: 3:2, Unknown Hop: Unk4",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk5" [tooltip="Trace: 3:6, Unknown Hop: Unk5",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk6" [tooltip="Trace: 3:7, Unknown Hop: Unk6",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk7" [tooltip="Trace: 3:8, Unknown Hop: Unk7",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk8" [tooltip="Trace: 3:11, Unknown Hop: Unk8",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk9" [tooltip="Trace: 3:12, Unknown Hop: Unk9",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk10" [tooltip="Trace: 3:13, Unknown Hop: Unk10",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk11" [tooltip="Trace: 4:2, Unknown Hop: Unk11",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk12" [tooltip="Trace: 4:6, Unknown Hop: Unk12",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk13" [tooltip="Trace: 4:7, Unknown Hop: Unk13",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk14" [tooltip="Trace: 4:8, Unknown Hop: Unk14",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk15" [tooltip="Trace: 4:11, Unknown Hop: Unk15",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk16" [tooltip="Trace: 4:12, Unknown Hop: Unk16",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk17" [tooltip="Trace: 4:13, Unknown Hop: Unk17",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk18" [tooltip="Trace: 5:2, Unknown Hop: Unk18",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk19" [tooltip="Trace: 5:5, Unknown Hop: Unk19",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk20" [tooltip="Trace: 6:2, Unknown Hop: Unk20",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk21" [tooltip="Trace: 6:5, Unknown Hop: Unk21",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk22" [tooltip="Trace: 7:2, Unknown Hop: Unk22",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk23" [tooltip="Trace: 7:6, Unknown Hop: Unk23",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk24" [tooltip="Trace: 7:7, Unknown Hop: Unk24",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk25" [tooltip="Trace: 7:8, Unknown Hop: Unk25",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk26" [tooltip="Trace: 7:9, Unknown Hop: Unk26",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk27" [tooltip="Trace: 7:10, Unknown Hop: Unk27",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk28" [tooltip="Trace: 7:11, Unknown Hop: Unk28",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk29" [tooltip="Trace: 7:12, Unknown Hop: Unk29",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk30" [tooltip="Trace: 7:13, Unknown Hop: Unk30",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk31" [tooltip="Trace: 8:2, Unknown Hop: Unk31",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk32" [tooltip="Trace: 8:6, Unknown Hop: Unk32",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk33" [tooltip="Trace: 8:7, Unknown Hop: Unk33",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk34" [tooltip="Trace: 8:9, Unknown Hop: Unk34",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk35" [tooltip="Trace: 8:10, Unknown Hop: Unk35",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk36" [tooltip="Trace: 8:11, Unknown Hop: Unk36",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk37" [tooltip="Trace: 8:12, Unknown Hop: Unk37",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk38" [tooltip="Trace: 8:13, Unknown Hop: Unk38",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk39" [tooltip="Trace: 9:2, Unknown Hop: Unk39",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk40" [tooltip="Trace: 9:5, Unknown Hop: Unk40",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk41" [tooltip="Trace: 10:2, Unknown Hop: Unk41",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk42" [tooltip="Trace: 10:5, Unknown Hop: Unk42",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk43" [tooltip="Trace: 11:2, Unknown Hop: Unk43",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk44" [tooltip="Trace: 11:6, Unknown Hop: Unk44",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk45" [tooltip="Trace: 11:7, Unknown Hop: Unk45",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk46" [tooltip="Trace: 11:8, Unknown Hop: Unk46",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk47" [tooltip="Trace: 11:10, Unknown Hop: Unk47",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk48" [tooltip="Trace: 11:11, Unknown Hop: Unk48",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk49" [tooltip="Trace: 11:12, Unknown Hop: Unk49",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk50" [tooltip="Trace: 11:13, Unknown Hop: Unk50",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk51" [tooltip="Trace: 12:2, Unknown Hop: Unk51",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk52" [tooltip="Trace: 12:6, Unknown Hop: Unk52",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk53" [tooltip="Trace: 12:8, Unknown Hop: Unk53",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk54" [tooltip="Trace: 12:9, Unknown Hop: Unk54",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk55" [tooltip="Trace: 12:10, Unknown Hop: Unk55",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk56" [tooltip="Trace: 12:11, Unknown Hop: Unk56",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk57" [tooltip="Trace: 12:12, Unknown Hop: Unk57",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
"Unk58" [tooltip="Trace: 12:13, Unknown Hop: Unk58",shape="egg",fontname="Sans-Serif",fontsize=9,height=0.2,width=0.2,color="black",gradientangle=270,fillcolor="white:#d8d8d8",style="filled"];
### Tooltip for Standalone Node Hops ###
"193.253.94.198" [tooltip="Hop Host: 193.253.94.198"];
"193.252.160.53" [tooltip="Hop Host: 193.252.160.53"];
"193.252.160.45" [tooltip="Hop Host: 193.252.160.45"];
}
That's great! I should be able to emulate something akin to that.
One challenge here is the treatment of "unknown" nodes, Trippy currently conflates all unknown nodes into a single node as part of the DOT
report which can be misleading when there are actually multiple unknown nodes. I think the options are to have:
The 1st option is what Trippy does today which isn't great. It appear from the example you have shared that Scapy chooses the 3rd option which leads to a lot of "duplicate" unknown nodes (58 in your example). Perhaps the 2nd option is a good compromise? Again, this would be something that would be nice to expose to users as an option as there seems to be no clear "right" answer.
Enrich the Graphviz
dot
report: