|
@@ -1,6 +1,7 @@
|
|
package main
|
|
package main
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "bufio"
|
|
"bytes"
|
|
"bytes"
|
|
"crypto/tls"
|
|
"crypto/tls"
|
|
"encoding/json"
|
|
"encoding/json"
|
|
@@ -9,6 +10,8 @@ import (
|
|
"log"
|
|
"log"
|
|
"net/http"
|
|
"net/http"
|
|
"net/url"
|
|
"net/url"
|
|
|
|
+ "os"
|
|
|
|
+ "regexp"
|
|
"strings"
|
|
"strings"
|
|
|
|
|
|
"github.com/dgrijalva/jwt-go"
|
|
"github.com/dgrijalva/jwt-go"
|
|
@@ -260,6 +263,43 @@ func (h *handler) findMAC(c echo.Context) error {
|
|
user := c.Get("user").(*jwt.Token)
|
|
user := c.Get("user").(*jwt.Token)
|
|
claims := user.Claims.(jwt.MapClaims)
|
|
claims := user.Claims.(jwt.MapClaims)
|
|
name := claims["name"].(string)
|
|
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, ","), ",")
|
|
}
|
|
}
|