作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在我添加接受输入地址的功能之前一切正常。
将 IP 地址拆分为 3 段并将其交给 getHostName
函数后,程序会在函数 net 调用后跳过“全部/包含函数”。 LookupAddr(ip)
.
package main
import (
"fmt"
"net"
"strconv"
"strings"
)
func getHostName(h chan string, ipAdresse string, n int) {
ip := ipAdresse + strconv.Itoa(n)
addr, ok := net.LookupAddr(ip)
fmt.Println(ok)
if ok == nil {
h <- ip + " - " + addr[0]
} else {
fmt.Println(ok)
}
}
func printer(n chan string) {
msg := <-n
fmt.Println(msg)
}
func main() {
fmt.Println("Please enter your local IP-Adresse e.g 192.168.1.1")
var ipAdresse_user string
fmt.Scanln(&ipAdresse_user)
ipsegment := strings.SplitAfter(ipAdresse_user, ".")
ipadresse_3 := ipsegment[0] + ipsegment[1] + ipsegment[2]
host := make(chan string)
for i := 0; i < 55; i++ {
go getHostName(host, ipadresse_3, i)
go printer(host)
}
fmt.Println("Finish - Network Scan")
}
最佳答案
我的错误是我必须用例如 Scanln 来阻止主函数。没有它,程序会在 goroutine 执行之前终止。
关于network-programming - Go - net.LookupAddr 不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814868/
我正在使用 Go 进行反向 ip 查找: hosts, err := net.LookupAddr("google.com") if err != nil { fmt.Println(err)
在我添加接受输入地址的功能之前一切正常。 将 IP 地址拆分为 3 段并将其交给 getHostName 函数后,程序会在函数 net 调用后跳过“全部/包含函数”。 LookupAddr(ip).
我是一名优秀的程序员,十分优秀!