最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年03月26日 10:30:20   作者:csd_ct  
這篇文章主要介紹了golang端口占用檢測(cè)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

         在運(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ù)即可。代碼如下:

// 傳入查詢(xún)的端口號(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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言流程控制之goto語(yǔ)句與無(wú)限循環(huán)

    Go語(yǔ)言流程控制之goto語(yǔ)句與無(wú)限循環(huán)

    這篇文章主要介紹了Go語(yǔ)言流程控制之goto語(yǔ)句與無(wú)限循環(huán),是golang入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • Golang無(wú)限緩存channel的設(shè)計(jì)與實(shí)現(xiàn)解析

    Golang無(wú)限緩存channel的設(shè)計(jì)與實(shí)現(xiàn)解析

    這篇文章主要為大家介紹了Golang無(wú)限緩存channel的設(shè)計(jì)與實(shí)現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Golang使用Docker進(jìn)行集成測(cè)試的示例詳解

    Golang使用Docker進(jìn)行集成測(cè)試的示例詳解

    集成測(cè)試需要解決外部依賴(lài)問(wèn)題,如?MySQL、Redis、網(wǎng)絡(luò)等依賴(lài),本文就來(lái)聊聊?Go?程序如何使用?Docker?來(lái)解決集成測(cè)試中外部依賴(lài)問(wèn)題吧
    2023-07-07
  • Go語(yǔ)言實(shí)現(xiàn)逐行讀取和寫(xiě)入文件詳解

    Go語(yǔ)言實(shí)現(xiàn)逐行讀取和寫(xiě)入文件詳解

    這篇文章主要介紹了如何使用go語(yǔ)言實(shí)現(xiàn)從輸入文件中讀取每行數(shù)據(jù),然后將每行字段組合成SQL插入腳本,然后逐行寫(xiě)入另外一個(gè)空白文件中,有需要的可以參考下
    2024-01-01
  • 最新評(píng)論

    谢通门县| 新乡县| 左贡县| 博客| 榆树市| 双峰县| 无为县| 玛多县| 嘉定区| 唐河县| 柳州市| 莱西市| 临西县| 乌审旗| 报价| 彰化市| 丰台区| 青龙| 泸西县| 郸城县| 卓资县| 龙南县| 澎湖县| 张北县| 交城县| 忻城县| 临桂县| 咸丰县| 沿河| 长兴县| 鹤庆县| 肃宁县| 麦盖提县| 澄城县| 福泉市| 岚皋县| 墨江| 富源县| 高雄市| 彭州市| 邵阳县|