Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///// Main file
- package inetwork
- import (
- "errors"
- "net"
- )
- const InterfaceWlan = "wlan0"
- const InterfaceEthernet = "eth0"
- var netInterfaces = net.Interfaces
- func GetIpAddress() (net.IP, error) {
- // List interfaces (mock this return ?)
- ifaces, err := netInterfaces()
- if err != nil {
- return nil, err
- }
- for _, i := range ifaces {
- // In my method, I'm interested only by eth0 and wlan0 (but in my dev env I don't have these interfaces)
- if i.Name == InterfaceWlan || i.Name == InterfaceEthernet {
- // Get IPs (mock method Addrs ?)
- addrs, err := i.Addrs()
- if err != nil || len(addrs) == 0 {
- continue
- }
- for _, addr := range addrs {
- // Check IP length
- if len(addr.String()) < 4{
- continue
- }
- // Remove mask from IP
- ip := net.ParseIP(addr.String()[0:len(addr.String())-3])
- // Convert to IPv4
- if ip != nil && ip.To4() != nil {
- return ip, nil
- }
- }
- }
- }
- return nil, errors.New("network: ip not found")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement