婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > golang端口占用檢測(cè)的使用

golang端口占用檢測(cè)的使用

熱門標(biāo)簽:湛江crm外呼系統(tǒng)排名 重慶慶云企業(yè)400電話到哪申請(qǐng) 鄭州智能語(yǔ)音電銷機(jī)器人價(jià)格 上海極信防封電銷卡價(jià)格 寧波語(yǔ)音外呼系統(tǒng)公司 仙桃400電話辦理 地圖標(biāo)注免費(fèi)定制店 不封卡外呼系統(tǒng) 宿遷便宜外呼系統(tǒng)代理商

         在運(yùn)維開(kāi)發(fā)的過(guò)程中,經(jīng)常碰到這樣的情況:?jiǎn)?dòng)某個(gè)應(yīng)用前,需要先檢測(cè)一下端口是否被其他的應(yīng)用占用了,若占用了,能否得到占用進(jìn)程的PID。后續(xù)可以根據(jù)這個(gè)PID,查找是哪個(gè)應(yīng)用占據(jù)這端口,然后KILL掉。非常簡(jiǎn)單的需求,思路是:

利用 netstat 命令獲取當(dāng)前的相關(guān)端口號(hào)的PID,然后正則表達(dá)式過(guò)濾出相關(guān)的PID即可

netstat -ano | findstr 8099

輸出如下:

以windows 系統(tǒng)下為例,linux系統(tǒng)下,修改相關(guān)參數(shù)即可。代碼如下:

// 傳入查詢的端口號(hào)
// 返回端口號(hào)對(duì)應(yīng)的進(jìn)程PID,若沒(méi)有找到相關(guān)進(jìn)程,返回-1
func portInUse(portNumber int) int {
	res := -1
	var outBytes bytes.Buffer
	cmdStr := fmt.Sprintf("netstat -ano -p tcp | findstr %d", portNumber)
	cmd := exec.Command("cmd", "/c", cmdStr)
	cmd.Stdout = outBytes
	cmd.Run()
	resStr := outBytes.String()
	r := regexp.MustCompile(`\s\d+\s`).FindAllString(resStr, -1)
	if len(r) > 0 {
		pid, err := strconv.Atoi(strings.TrimSpace(r[0]))
		if err != nil {
			res = -1
		} else {
			res = pid
		}
	}
	return res
}

補(bǔ):golang 實(shí)現(xiàn)端口掃描

對(duì)端口進(jìn)行掃描基于連接,在go中我們可以使用net.Dial進(jìn)行判斷,如果返回的結(jié)果沒(méi)有錯(cuò)誤,那么這個(gè)端口就應(yīng)該是打開(kāi)的,如果返回了錯(cuò)誤,那么可以說(shuō)明這個(gè)端口是關(guān)閉的,代碼如下

func ScanPort(protocol string, hostname string, port int) bool {
 fmt.Printf("scanning port %d \n", port)
 p := strconv.Itoa(port)
 addr := net.JoinHostPort(hostname, p)
 conn, err := net.DialTimeout(protocol, addr, 3*time.Second)
 if err != nil {
 return false
 }
 defer conn.Close()
 return true
}

到此這篇關(guān)于golang端口占用檢測(cè)的使用的文章就介紹到這了,更多相關(guān)golang端口占用檢測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • go語(yǔ)言制作端口掃描器
  • Go語(yǔ)言實(shí)現(xiàn)的簡(jiǎn)單網(wǎng)絡(luò)端口掃描方法
  • GO語(yǔ)言實(shí)現(xiàn)的端口掃描器分享

標(biāo)簽:青海 物業(yè)服務(wù) 海南 安康 西雙版納 電子產(chǎn)品 儋州 遼寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang端口占用檢測(cè)的使用》,本文關(guān)鍵詞  golang,端口,占用,檢測(cè),的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang端口占用檢測(cè)的使用》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于golang端口占用檢測(cè)的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 尉氏县| 炎陵县| 正安县| 西贡区| 如东县| 五台县| 大名县| 台南县| 花莲市| 鄂温| 喀什市| 马公市| 华容县| 金昌市| 亚东县| 高唐县| 灵石县| 多伦县| 黑水县| 明水县| 黄龙县| 孝感市| 厦门市| 张家口市| 桐庐县| 蒙自县| 安徽省| 胶州市| 茌平县| 凤阳县| 清流县| 江阴市| 绩溪县| 西吉县| 桐庐县| 甘洛县| 馆陶县| 鄂伦春自治旗| 卓资县| 柳州市| 上杭县|