我正在尝试为初学者golang项目构建一个简单的端口扫描程序,并且大多数代码都按预期工作,但是我在函数方面遇到了问题,可以返回逐行生成的所有ip并将其传递给另一个函数以扫描它们 当前返回第一行只有一种方法可以循环访问变量以逐行返回所有ips?ipv4_gen()ipv4_gen()ip
package main
import (
"fmt"
"log"
"net"
"strconv"
"time"
)
func ipv4_gen() string {
ip, ipnet, err := net.ParseCIDR("192.168.1.1/24")
if err != nil {
log.Fatal(err)
}
for ip := ip.Mask(ipnet.Mask); ipnet.Contains(ip); inc(ip) {
return ip.String()
}
return ip.String()
}
func inc(ip net.IP) {
for j := len(ip) - 1; j >= 0; j-- {
ip[j]++
if ip[j] > 0 {
break
}
}
}
func port_scanner(host string) {
port := strconv.Itoa(80)
conn, err := net.DialTimeout("tcp", host+":"+port, 1*time.Second)
if err == nil {
fmt.Println("Host:", conn.RemoteAddr().String(), "open")
conn.Close()
}
}
func main() {
port_scanner(ipv4_gen())
}
如果要运行代码,请单击下面的链接 https://play.golang.org/p/YWvgnowZzhI
慕运维8079593
慕斯王
红糖糍粑
相关分类