diff --git a/static/js/pages/bgp-route.js b/static/js/pages/bgp-route.js
new file mode 100644
index 0000000..2d99cc5
--- /dev/null
+++ b/static/js/pages/bgp-route.js
@@ -0,0 +1,95 @@
+function detectIpVersion(ip){
+ const ipv4Regex=/^(\d{1,3}\.){3}\d{1,3}(\/\d{1,2})?$/;
+ const ipv6Regex=/^([0-9a-fA-F:]+)(\/\d{1,3})?$/;
+
+ if(ipv4Regex.test(ip)){
+ return"ipv4";
+ }else if(ipv6Regex.test(ip)){
+ return"ipv6";
+ }else{
+ return null;
+ }
+}
+
+function highlightBGPOutput(text){
+ text=text.replace(/\b215085\b/g,'215085');
+
+ text=text.replace(/\b\d{4,6}\b/g,match=>{
+ if(match==='215085')return match;
+ return`${match}`;
+ });
+
+ text=text.split('\n').map(line=>{
+ if(line.toLowerCase().includes('best')){
+ return`${line}`;
+ }
+ return line;
+ }).join('\n');
+
+ text=text.split('\n').map(line=>{
+ if(line.toLowerCase().includes('table entry')){
+ return`${line}`;
+ }
+ return line;
+ }).join('\n');
+
+ text=text.split('\n').map(line=>{
+ if(line.toLowerCase().includes('multipath')){
+ return`${line}`;
+ }
+ return line;
+ }).join('\n');
+
+ return text.replace(/\n/g,'
');
+}
+
+function displayBGPRoute(data){
+ const outputElem=document.getElementById("bgpOutput");
+ const rawText=data.data||JSON.stringify(data,null,2);
+ const highlighted=highlightBGPOutput(rawText);
+ outputElem.innerHTML=highlighted;
+}
+
+async function loadBGPRoute(){
+ const outputElem=document.getElementById("bgpOutput");
+ const prefix=document.getElementById("prefixInput").value.trim();
+
+ if(!prefix){
+ outputElem.textContent="Voer eerst een geldig prefix in.";
+ return;
+ }
+
+ const ip_version=detectIpVersion(prefix);
+ if(!ip_version){
+ outputElem.textContent="Ongeldig IP-adres of prefix.";
+ return;
+ }
+
+ outputElem.textContent="Loading...";
+
+ const postData={
+ ip_version:ip_version,
+ bgprouteprefix:prefix
+ };
+
+ try{
+ const response=await fetch("/bgp-route/lookup",{
+ method:"POST",
+ headers:{
+ "Content-Type":"application/json",
+ },
+ body:JSON.stringify(postData),
+ });
+ if(!response.ok)throw new Error("Network response was not ok");
+ const data=await response.json();
+
+ if(data.error){
+ outputElem.textContent="Error: "+data.error;
+ return;
+ }
+
+ displayBGPRoute(data);
+ }catch(error){
+ outputElem.textContent="Fout bij ophalen van data: "+error.message;
+ }
+}