1

在我添加接受输入地址的功能之前,一切正常。

在将 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")
}
4

1 回答 1

0

我的错误是我必须使用例如 Scanln 来阻止主要功能。没有它,程序会在 goroutine 执行之前终止。

于 2012-12-11T07:06:44.373 回答