3
3
import ipaddress
4
4
import json
5
5
import os
6
- from time import sleep
7
6
8
7
import networkx as nx
9
8
from pyvis .network import Network
@@ -49,11 +48,12 @@ def parse_ttl(response_ttl, current_ttl):
49
48
50
49
def visualize (previous_node_id , current_node_id ,
51
50
current_node_label , current_node_title , device_color ,
52
- current_edge_title , requset_color , current_edge_label ):
51
+ current_edge_title , requset_color , current_edge_label ,
52
+ current_node_shape ):
53
53
if not multi_directed_graph .has_node (current_node_id ):
54
54
multi_directed_graph .add_node (current_node_id ,
55
55
label = current_node_label , color = device_color ,
56
- title = current_node_title )
56
+ title = current_node_title , shape = current_node_shape )
57
57
multi_directed_graph .add_edge (previous_node_id , current_node_id , label = current_edge_label ,
58
58
color = requset_color , title = current_edge_title )
59
59
@@ -120,7 +120,8 @@ def vis(measurement_path, attach_jscss, edge_lable: str = "none"):
120
120
src_addr = all_measurements [0 ]["src_addr" ]
121
121
src_addr_id = str (int (ipaddress .IPv4Address (src_addr )))
122
122
multi_directed_graph .add_node (
123
- src_addr_id , label = src_addr , color = "Chocolate" , title = "source address" )
123
+ src_addr_id , label = src_addr , color = "Chocolate" , title = "source address" ,
124
+ shape = "diamond" )
124
125
for measurement in all_measurements :
125
126
previous_node_ids = initialize_first_nodes (src_addr_id )
126
127
dst_addr = measurement ["dst_addr" ]
@@ -148,6 +149,7 @@ def vis(measurement_path, attach_jscss, edge_lable: str = "none"):
148
149
current_edge_title = "***"
149
150
current_edge_label = ""
150
151
current_node_id = "0"
152
+ current_node_shape = "dot"
151
153
elapsed_ms = "*"
152
154
packet_size = "*"
153
155
backttl = "*"
@@ -173,6 +175,9 @@ def vis(measurement_path, attach_jscss, edge_lable: str = "none"):
173
175
if device_color == MIDDLEBOX_COLOR :
174
176
current_node_id = (
175
177
"middlebox" + str (current_node_id ) + "x" )
178
+ current_node_shape = "star"
179
+ elif current_node_id == dst_addr_id :
180
+ current_node_shape = "square"
176
181
current_node_label = answer_ip
177
182
current_edge_title = str (backttl )
178
183
packet_size = result ["size" ]
@@ -186,7 +191,7 @@ def vis(measurement_path, attach_jscss, edge_lable: str = "none"):
186
191
previous_node_ids [repeat_steps ], current_node_id ,
187
192
current_node_label , DEVICE_OS_NAME [device_color ], device_color ,
188
193
current_edge_title , REQUEST_COLORS [measurement_steps ],
189
- current_edge_label
194
+ current_edge_label , current_node_shape
190
195
)
191
196
previous_node_ids [repeat_steps ] = current_node_id
192
197
repeat_steps += 1
0 commit comments