MCPcopy Create free account
hub / github.com/DOSNetwork/core / getIP

Function getIP

p2p/util.go:8–43  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

6)
7
8func getIP() (net.IP, error) {
9 ifaces, err := net.Interfaces()
10 if err != nil {
11 return nil, err
12 }
13 for _, iface := range ifaces {
14 if iface.Flags&net.FlagUp == 0 {
15 continue // interface down
16 }
17 if iface.Flags&net.FlagLoopback != 0 {
18 continue // loopback interface
19 }
20 addrs, err := iface.Addrs()
21 if err != nil {
22 return nil, err
23 }
24 for _, addr := range addrs {
25 var ip net.IP
26 switch v := addr.(type) {
27 case *net.IPNet:
28 ip = v.IP
29 case *net.IPAddr:
30 ip = v.IP
31 }
32 if ip == nil || ip.IsLoopback() {
33 continue
34 }
35 ip = ip.To4()
36 if ip == nil {
37 continue // not an ipv4 address
38 }
39 return ip, nil
40 }
41 }
42 return nil, errors.New("Can't find IP address")
43}

Callers 1

CreateP2PNetworkFunction · 0.85

Calls 1

NewMethod · 0.65

Tested by

no test coverage detected