You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							35 lines
						
					
					
						
							668 B
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							35 lines
						
					
					
						
							668 B
						
					
					
				| package util | |
| 
 | |
| import ( | |
| 	"net" | |
| 
 | |
| 	"github.com/chrislusf/seaweedfs/weed/glog" | |
| ) | |
| 
 | |
| func DetectedHostAddress() string { | |
| 	netInterfaces, err := net.Interfaces() | |
| 	if err != nil { | |
| 		glog.V(0).Infof("failed to detect net interfaces: %v", err) | |
| 		return "" | |
| 	} | |
| 
 | |
| 	for _, netInterface := range netInterfaces { | |
| 		if (netInterface.Flags & net.FlagUp) == 0 { | |
| 			continue | |
| 		} | |
| 		addrs, err := netInterface.Addrs() | |
| 		if err != nil { | |
| 			glog.V(0).Infof("get interface addresses: %v", err) | |
| 		} | |
| 
 | |
| 		for _, a := range addrs { | |
| 			if ipNet, ok := a.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { | |
| 				if ipNet.IP.To4() != nil { | |
| 					return ipNet.IP.String() | |
| 				} | |
| 			} | |
| 		} | |
| 	} | |
| 
 | |
| 	return "localhost" | |
| }
 |