Golang 系统ping程序探测存活主机(任意权限)

时间:2020-11-08 17:03:49   收藏:0   阅读:171

优点:支持任意权限,不像ICMP需管理员权限
缺点:速度慢,扫描一个C段大约10秒左右
用法: Ladon 192.168.1.1/24 PingScan

package ping
//Ladon Scanner for golang 
//Author: k8gege
//K8Blog: http://k8gege.org
//Github: https://github.com/k8gege/LadonGo
import (
	"os/exec"
	//"log"
	//"fmt"
	"bytes"
	"runtime"
	"strings"
)
//Support User
func CmdPing(host string) ( result bool,err error)  {
    sysType := runtime.GOOS
    if sysType == "linux" {
		cmd := exec.Command("/bin/sh","-c","ping -c 1 "+host)
		var out bytes.Buffer
		cmd.Stdout = &out
		cmd.Run()
		//err := cmd.Run()
		//if err != nil {
			//log.Fatal(err)
		//}
		//fmt.Println(out.String())
		if strings.Contains(out.String(), "ttl=") {
			//fmt.Println("ISOK")
			result = true
		 } 
    } else if sysType == "windows" {
		cmd := exec.Command("cmd","/c","ping -a -n 1 "+host)
		var out bytes.Buffer
		cmd.Stdout = &out
		cmd.Run()
		//err := cmd.Run()
		//if err != nil {
			//log.Fatal(err)
		//}
		//fmt.Println(out.String())
		if strings.Contains(out.String(), "TTL=") {
			//fmt.Println("ISOK")
			result = true
		 } 
    }
    return result,err
}


原文:https://www.cnblogs.com/k8gege/p/13944102.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!