我是靠谱客的博主 聪慧裙子,最近开发中收集的这篇文章主要介绍【golang】golang使用cmd去ping网址在window和linux的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设置ping的次数,在linux和window上,命令内容不一样
window

ping -n 2 php-china.com

linux

ping -c 2 php-china.com
//设置类型别名
type Charset string

const (
	UTF8    = Charset("UTF-8")
	GB18030 = Charset("GB18030")
	UNKNOWN = Charset("UNKNOWN")
)

func main() {
	//获取当前系统
	sysType := runtime.GOOS
	switch sysType {
	case "windows":
		execCommandPingWeb("www.baidu.com", "-n", "2")
	case "linux":
		execCommandPingWeb("www.baidu.com", "-c", "2")
	default:
		log.Fatal("系统获取失败")
	}
	fmt.Println(runtime.GOOS)
}
func execCommandPingWeb(web string, arg ...string) {
	var outInfo, outErr bytes.Buffer
	cmd := exec.Command("ping", arg[0], arg[1], web)

	cmd.Stdout = &outInfo
	cmd.Stderr = &outErr
	if err := cmd.Run(); err != nil {
		fmt.Println("错误", err)
		return
	}
	coding := GetStrCoding([]byte(outInfo.String()))
	res := ConvertByte2String([]byte(outInfo.String()), coding)
	fmt.Println(res)
}
func ConvertByte2String(byte []byte, charset Charset) Charset {
	var str Charset
	switch charset {
	case GB18030:
		var decodeBytes, _ = simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
		str = Charset(decodeBytes)
	case UTF8:
		fallthrough
	default:
		str = Charset(byte)
	}

	return str
}

个人网站:沉默博客
如有错误,请多多指教。
如对你有帮助,给个赞吧。

最后

以上就是聪慧裙子为你收集整理的【golang】golang使用cmd去ping网址在window和linux的区别的全部内容,希望文章能够帮你解决【golang】golang使用cmd去ping网址在window和linux的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部