0
func main() {
var ip string
fmt.Print("Host: ")
fmt.Scanln(&ip)
addr, _ := net.LookupAddr(ip)
app := "grep"
arg0 := "inst"
arg1 := "acl.yaml"
cmd := exec.Command(app, arg0, arg1)
stdout, err := cmd.Output()
x := string(stdout)
reg, _ := regexp.Compile(`(internal)`)
if err != nil {
println(err.Error())
return
}
if ip != "" {
validateIP(ip)
}
fmt.Println(x)
fmt.Println(addr[0])
//fmt.Println(stdout)
if addr[0] == reg.FindString(`(internal)`){
file, err := os.Open("ports.json")
if err != nil {
panic(err)
}
defer file.Close()
ports := []portDef{}
err = json.NewDecoder(file).Decode(&ports)
if err != nil {
panic(err)
}
for _, p := range ports {
conn, err := net.Dial(p.Protocol, ip + ":" + p.Port)
if conn != nil {
fmt.Println("")
fmt.Printf("Connection established between %s and Localhost.\n", addr)
fmt.Printf("Remote Address : %s \n", conn.RemoteAddr().String())
fmt.Printf("Local Address : %s \n", conn.LocalAddr().String())
}
fmt.Println("")
if err != nil {
fmt.Println(err)
}
}
}
}
我想比較正則表達式值與字符串。在這種情況下,我想的"addr"
值進行比較,以正則表達式,如果中addr
值中有「內部」,它通過開放的端口選定的文件和迭代。地址從LookupAddr
返回始終處於box.internal.blah.blah.com,所以我在地址(在這種情況下,內部)尋找第二個字段進行比較的正則表達式,並在發現「內部」它將通過循環循環的地址。正則表達式值與字符串比較
我知道我的正則表達式很可能在這裏出了什麼問題。任何幫助將不勝感激。