善用大模型,效果图:
第一步,在cmd窗口中运行traceRT命令
如下:
C:\Users\Thinkpad>traceRT baidu.com
通过最多 30 个跃点跟踪
到 baidu.com [110.242.68.66] 的路由:
1 * * * 请求超时。
2 44 ms 45 ms 44 ms 172.17.0.42
3 * 44 ms 44 ms 172.17.0.253
4 43 ms 43 ms 46 ms 61.50.130.93
5 74 ms 40 ms 45 ms 123.126.6.53
6 * * * 请求超时。
7 * * * 请求超时。
8 * * * 请求超时。
9 53 ms * 53 ms 110.242.66.166
10 53 ms 54 ms 53 ms 221.194.45.130
11 * * * 请求超时。
12 * * * 请求超时。
13 * * * 请求超时。
14 * * * 请求超时。
15 54 ms 51 ms 50 ms 110.242.68.66
跟踪完成。
C:\Users\Thinkpad>traceRT bing.com
通过最多 30 个跃点跟踪
到 bing.com [204.79.197.200] 的路由:
1 5 ms * 3 ms 10.115.255.254
2 4 ms 2 ms * 172.17.0.42
3 2 ms 2 ms 2 ms 172.17.0.253
4 12 ms 20 ms 6 ms 61.50.130.93
5 5 ms 6 ms 3 ms 123.126.6.53
6 * 5 ms * 221.216.106.101
7 * * * 请求超时。
8 * * * 请求超时。
9 * 40 ms * 219.158.3.158
10 45 ms 41 ms 47 ms 219.158.4.2
11 80 ms * 80 ms 219.158.12.218
12 80 ms 81 ms 73 ms 219.158.38.218
13 * * * 请求超时。
14 82 ms 75 ms 80 ms 13.104.185.160
15 * * * 请求超时。
16 * * * 请求超时。
17 71 ms 72 ms 70 ms a-0001.a-msedge.net [204.79.197.200]
跟踪完成。
第二步,用python绘图
!终端中的bash命令安装第三方库matplotlib和network
pip install matplotlib networkx
分别运行两段代码
import matplotlib.pyplot as plt
import networkx as nx
# Creating a directed graph
G = nx.DiGraph()
# Adding nodes and edges based on the traceRT data
nodes = ["Start", "172.17.0.42", "172.17.0.253", "61.50.130.93", "123.126.6.53", "Timeout", "Timeout", "Timeout",
"110.242.66.166", "221.194.45.130", "Timeout", "Timeout", "Timeout", "Timeout", "110.242.68.66"]
edges = [(nodes[i], nodes[i+1]) for i in range(len(nodes)-1) if "Timeout" not in nodes[i]]
# Adding nodes and edges to the graph
G.add_nodes_from(nodes)
G.add_edges_from(edges)
# Drawing the graph
pos = nx.spring_layout(G)
plt.figure(figsize=(12, 8))
# Drawing nodes
nx.draw_networkx_nodes(G, pos, node_size=2000)
nx.draw_networkx_nodes(G, pos, nodelist=[node for node in nodes if "Timeout" in node], node_color='red', node_size=2000)
# Drawing edges
nx.draw_networkx_edges(G, pos, width=1.0, alpha=0.5)
nx.draw_networkx_edges(G, pos, edgelist=[edge for edge in edges if "Timeout" not in edge[1]], width=2.0, alpha=0.5)
# Drawing node labels
nx.draw_networkx_labels(G, pos, font_size=10)
# Showing the plot
plt.title("Network Topology Diagram based on traceRT to baidu.com")
plt.show()
import matplotlib.pyplot as plt
import networkx as nx
# Data for the network topology
nodes = [
"10.115.255.254", "172.17.0.42", "172.17.0.253", "61.50.130.93",
"123.126.6.53", "221.216.106.101", "Timeout", "Timeout",
"219.158.3.158", "219.158.4.2", "219.158.12.218", "219.158.38.218",
"Timeout", "13.104.185.160", "Timeout", "Timeout",
"a-0001.a-msedge.net [204.79.197.200]"
]
edges = [(nodes[i], nodes[i+1]) for i in range(len(nodes)-1)]
# Create graph
G = nx.Graph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)
# Draw the graph
plt.figure(figsize=(12, 8))
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_color="skyblue", node_size=2000, font_size=10, font_weight="bold")
nx.draw_networkx_nodes(G, pos, nodelist=["Timeout", "Timeout", "Timeout", "Timeout", "Timeout"], node_color="red")
# Show the plot
plt.title("Network Topology to bing.com [204.79.197.200]")
plt.show()
感谢观看,可视化将会带来更好的学习体验!一起做实验,提高动手能力和编程能力!