首页 > 其他 > 详细

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

时间:2020-11-08 17:03:49      阅读:169      评论:0      收藏:0      [点我收藏+]

优点:支持任意权限,不像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
}


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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!