| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package util
- import (
- "errors"
- "net"
- "os"
- )
- func AllIPV4() (ipv4s []string) {
- adders, err := net.InterfaceAddrs()
- if err != nil {
- return
- }
- for _, addr := range adders {
- if ipNet, ok := addr.(*net.IPNet); ok && !ipNet.IP.IsLoopback() {
- if ipNet.IP.To4() != nil {
- ipv4 := ipNet.IP.String()
- if ipv4 == "127.0.0.1" || ipv4 == "localhost" {
- continue
- }
- ipv4s = append(ipv4s, ipv4)
- }
- }
- }
- return
- }
- func GetLocalIP() (ip string, err error) {
- netInterfaces, err := net.Interfaces()
- if err != nil {
- return
- }
- for i := 0; i < len(netInterfaces); i++ {
- if ((netInterfaces[i].Flags & net.FlagUp) != 0) && ((netInterfaces[i].Flags & net.FlagLoopback) == 0) {
- addresses, _ := netInterfaces[i].Addrs()
- for _, address := range addresses {
- if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() && ipNet.IP.To4() != nil {
- ip = ipNet.IP.String()
- return
- }
- }
- }
- }
- return ip, errors.New("can not get local localIP")
- }
- func CurrentServerHostName() string {
- name, err := os.Hostname()
- if err != nil {
- Errorf("[CurrentServerHostName] get os.Hostnam err, err=%v\n", err.Error())
- localIP, ipErr := GetLocalIP()
- if ipErr != nil {
- Errorf("[CurrentServerHostName] get GetLocalIP err, err=%v\n", ipErr.Error())
- return "127.0.0.1"
- }
- return localIP
- }
- return name
- }
|