Go語言獲取本地IP地址


最近要做一個向局域網內的所有設備廣播發送信息,並接受設備的回復信息,回復信息包括設備的版本號,IP地址,運行工程名等信息。發現一個局域網內是可以有不同的網段的,但UDP廣播只能是同一個網段的廣播。又發現一台電腦是可以設置多個IP,且IP地址可以是不同網段的。故目前只要往當前電腦上的所有本地IP地址進行廣播,就可以讓不同網段的設備接收到廣播信息了。獲取代碼如下:

package main

import(
	"fmt"
	"net"
)

func main(){
	addrs, err := net.InterfaceAddrs()
	if err != nil{
		fmt.Println(err)
		return
	}
	for _, value := range addrs{
		if ipnet, ok := value.(*net.IPNet); ok && !ipnet.IP.IsLoopback(){
			if ipnet.IP.To4() != nil{
				fmt.Println(ipnet.IP.String())
			}
		}
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM