Sasan Torabkheslat 3 gadi atpakaļ
vecāks
revīzija
b5d2a992f4
2 mainītis faili ar 42 papildinājumiem un 1 dzēšanām
  1. 1 0
      .gitignore
  2. 41 1
      handler.go

+ 1 - 0
.gitignore

@@ -1,3 +1,4 @@
 vendor
 .idea
 Gopkg.lock
+unimusAPI

+ 41 - 1
handler.go

@@ -1,6 +1,7 @@
 package main
 
 import (
+	"bufio"
 	"bytes"
 	"crypto/tls"
 	"encoding/json"
@@ -9,6 +10,8 @@ import (
 	"log"
 	"net/http"
 	"net/url"
+	"os"
+	"regexp"
 	"strings"
 
 	"github.com/dgrijalva/jwt-go"
@@ -260,6 +263,43 @@ func (h *handler) findMAC(c echo.Context) error {
 	user := c.Get("user").(*jwt.Token)
 	claims := user.Claims.(jwt.MapClaims)
 	name := claims["name"].(string)
+	result1 := Connect("rancid", "JDACy6wK*yW%meQ", os.Args[1], os.Args[2])
+	intDesc := os.Args[3]
+	var IntString string
+	scanner := bufio.NewScanner(&result1)
+	var IntName string
+	var IntMAC string
+	// var IntName, IntStatus, IntVLAN, IntDuplex, IntSpeed, IntType string
+	for scanner.Scan() {
+		// fmt.Println("Text: " + scanner.Text())
+		if strings.Contains(scanner.Text(), intDesc) {
+			// fmt.Println("Text: " + scanner.Text())
+			IntString = scanner.Text()
+			IntName = IntStringParser(IntString)[0]
+			break
+		}
+	}
+	// fmt.Println(IntName)
+	result1 = Connect("rancid", "JDACy6wK*yW%meQ", os.Args[1], "sh mac address-table int "+IntName)
+	scanner = bufio.NewScanner(&result1)
+	for scanner.Scan() {
+		// fmt.Println("Text: " + scanner.Text())
+		if strings.Contains(scanner.Text(), IntName) {
+			if strings.Contains(scanner.Text(), "mac") {
+				continue
+			}
+			// fmt.Println(scanner.Text())
+			IntString = scanner.Text()
+			IntMAC = IntStringParser(IntString)[2]
+			// fmt.Println(IntMAC)
+			// break
+		}
+	}
+	fmt.Println(IntMAC)
+	return c.String(http.StatusOK, "Welcome "+IntMAC+"!")
+}
+func IntStringParser(str string) []string {
 
-	return c.String(http.StatusOK, "Welcome "+name+"!")
+	re := regexp.MustCompile(`\s{1,}`)
+	return strings.Split(re.ReplaceAllString(str, ","), ",")
 }