我正在处理多线程和序列化流程,并希望自动化我的侦察流程。只要我不调用名为nmap. 调用时nmap,它退出并出现以下错误:./recon-s.go:54:12: 调用 nmap 时参数不足 () want (chan<- []byte)这是我的代码:package mainimport ( "fmt" "log" "os/exec" "sync")var url stringvar wg sync.WaitGroupvar ip stringfunc nikto(outChan chan<- []byte) { cmd := exec.Command("nikto", "-h", url) bs, err := cmd.Output() if err != nil { log.Fatal(err) } outChan <- bs wg.Done()}func whois(outChan chan<- []byte) { cmd := exec.Command("whois",url) bs, err := cmd.Output() if err != nil { log.Fatal(err) } outChan <- bs wg.Done()}func nmap (outChan chan<-[]byte) { fmt.Printf("Please input IP") fmt.Scanln(&ip) cmd := exec.Command("nmap","-sC","-sV","-oA","nmap",ip) bs,err := cmd.Output() if err != nil { log.Fatal(err) } outChan <- bs wg.Done() }func main() { outChan := make(chan []byte) fmt.Printf("Please input URL") fmt.Scanln(&url) wg.Add(1) go nikto(outChan) wg.Add(1) go whois(outChan) wg.Add(1) go nmap() for i := 0; i < 3; i++ { bs := <-outChan fmt.Println(string(bs)) } close(outChan) wg.Wait()}
1 回答
达令说
TA贡献1821条经验 获得超6个赞
你得到的错误是:
调用 nmap 时参数不足 have () want (chan<- []byte)
这意味着nmap()方法main没有任何参数,但实际nmap()定义需要一个参数chan<-[]byte,所以你必须从nmap()下面传递一个参数,我提到了你刚刚错过的参数。
func main() {
outChan := make(chan []byte)
fmt.Printf("Please input URL")
fmt.Scanln(&url)
wg.Add(1)
go nikto(outChan)
wg.Add(1)
go whois(outChan)
wg.Add(1)
go nmap(outChan) //you are just missing the argument here.
for i := 0; i < 3; i++ {
bs := <-outChan
fmt.Println(string(bs))
}
close(outChan)
wg.Wait()
}
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报
0/150
提交
取消