Added traceroute function

This commit is contained in:
Kaushik 2021-12-09 22:18:44 +05:30
parent ce17eb0821
commit 39ee37b9c4
2 changed files with 11 additions and 5 deletions

View File

@ -1,4 +1,3 @@
import sys
from PyQt5.QtGui import * from PyQt5.QtGui import *
from PyQt5.QtCore import * from PyQt5.QtCore import *
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
@ -109,7 +108,6 @@ class NetworkMonitor(QMainWindow):
def packetClear(self): def packetClear(self):
self.actionStart.setEnabled(False) self.actionStart.setEnabled(False)
self.actionStop.setEnabled(True) self.actionStop.setEnabled(True)
self.actionStop.setEnabled(True)
self.thread.terminate() self.thread.terminate()
self.tableWidget.clearContents() self.tableWidget.clearContents()

View File

@ -1,8 +1,8 @@
import sys
from PyQt5.QtGui import * from PyQt5.QtGui import *
from PyQt5.QtCore import * from PyQt5.QtCore import *
from PyQt5.QtWidgets import * from PyQt5.QtWidgets import *
from scapy.all import * from scapy.all import *
from scapy.layers.inet import traceroute
class TraceRoute(QWidget): class TraceRoute(QWidget):
def __init__(self): def __init__(self):
@ -16,6 +16,8 @@ class TraceRoute(QWidget):
self.startTraceBtn.clicked.connect(self.startTrace) self.startTraceBtn.clicked.connect(self.startTrace)
self.result = QTextEdit() self.result = QTextEdit()
self.result.setEnabled(False)
self.layoutTrace = QVBoxLayout(self) self.layoutTrace = QVBoxLayout(self)
self.layoutTrace.addWidget(self.hostn) self.layoutTrace.addWidget(self.hostn)
self.layoutTrace.addWidget(self.host) self.layoutTrace.addWidget(self.host)
@ -23,5 +25,11 @@ class TraceRoute(QWidget):
self.layoutTrace.addWidget(self.result) self.layoutTrace.addWidget(self.result)
self.setLayout(self.layoutTrace) self.setLayout(self.layoutTrace)
def startTrace(): def startTrace(self):
pass 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))