diff --git a/network_monitor.py b/network_monitor.py index 9e3d07e..8ce29a9 100644 --- a/network_monitor.py +++ b/network_monitor.py @@ -1,4 +1,3 @@ -import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * @@ -109,7 +108,6 @@ class NetworkMonitor(QMainWindow): def packetClear(self): self.actionStart.setEnabled(False) self.actionStop.setEnabled(True) - self.actionStop.setEnabled(True) self.thread.terminate() self.tableWidget.clearContents() diff --git a/trace_route.py b/trace_route.py index 41aace8..a45a59c 100644 --- a/trace_route.py +++ b/trace_route.py @@ -1,8 +1,8 @@ -import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * from scapy.all import * +from scapy.layers.inet import traceroute class TraceRoute(QWidget): def __init__(self): @@ -16,6 +16,8 @@ class TraceRoute(QWidget): self.startTraceBtn.clicked.connect(self.startTrace) self.result = QTextEdit() + self.result.setEnabled(False) + self.layoutTrace = QVBoxLayout(self) self.layoutTrace.addWidget(self.hostn) self.layoutTrace.addWidget(self.host) @@ -23,5 +25,11 @@ class TraceRoute(QWidget): self.layoutTrace.addWidget(self.result) self.setLayout(self.layoutTrace) - def startTrace(): - pass \ No newline at end of file + def startTrace(self): + result, unans = traceroute(target=self.host.text(), dport=80, verbose=0) + output = [] + output.append("\tRoute path\tResponse time") + for snd, rcv in result: + output.append(str(f"{snd.ttl}\t{rcv.src}\t\t{(int((rcv.time - snd.sent_time)*1000))} ms")) + output.append(f"\nUnanswered packets: {len(unans)}") + self.result.setText('\n'.join(output)) \ No newline at end of file