我只是想在我的系统上运行一个nmap扫描使用下面的主要功能
func main() {
execErr := exec.Command("cmd","/c","nmap -T4 -A -v localhost")
if execErr != nil {
panic(execErr)
}
}
的恐慌。我试着在网上搜索文档,但找不到任何对windows有用的东西。有人能帮助我吗?
exec.Command()
不返回error
,而是返回*Cmd
类型的结构体,然后您可以调用Run()
方法(或其他方法,参见下面的注意)来执行如下命令:
cmd := exec.Command("cmd","/c","nmap -T4 -A -v localhost")
err := cmd.Run()
if execErr != nil {
log.Fatal(err)
}
你的代码panic
s,因为exec.Command("cmd","/c","nmap -T4 -A -v localhost")
返回一个有效的非空指针到Cmd
结构(恐慌消息可能是cmd.exe
的完整路径,然后你提供的参数是Cmd
结构的Path
和Args
字段的值…)。
注意:这里使用panic()
不是一个好习惯,使用log.Fatal()
代替。另外,直接运行nmap
并在代码中处理其输出可能会更好。请参阅使用Output()
,CombinedOutput()
和Start()
读取其他命令输出的示例,这取决于您要做的事情以及命令的行为。