network icon indicating copy to clipboard operation
network copied to clipboard

Wrong NetMask shown for IP

Open nsgundy opened this issue 6 years ago • 4 comments

Node: 6.9.1 network: 0.4.0

I have this situation where eth0 has two IP addresses (one assigned by DHCP and the other is a link-local address assigned by systemd-networkd), but get_interfaces_list() returns the IP of the DHCP address with the netmask of the link-local address.

{
  "name": "eth0",
  "ip_address": "192.168.2.116",
  "mac_address": "5c:f8:21:0f:40:d8",
  "gateway_ip": "192.168.2.1",
  "netmask": "255.255.0.0",
  "type": "Wired"
}

Output from os.networkInterfaces()

> os.networkInterfaces()
{ lo:
   [ { address: '127.0.0.1',
       netmask: '255.0.0.0',
       family: 'IPv4',
       mac: '00:00:00:00:00:00',
       internal: true } ],
  eth0:
   [ { address: '169.254.123.48',
       netmask: '255.255.0.0',
       family: 'IPv4',
       mac: '5c:f8:21:0f:40:d8',
       internal: false },
     { address: '192.168.2.116',
       netmask: '255.255.255.0',
       family: 'IPv4',
       mac: '5c:f8:21:0f:40:d8',
       internal: false } ] }

Output from ip -o -4 addr show eth0:

2: eth0    inet 169.254.123.48/16 brd 169.254.255.255 scope link eth0\       valid_lft forever preferred_lft forever
2: eth0    inet 192.168.2.116/24 brd 192.168.2.255 scope global dynamic eth0\       valid_lft 1803687sec preferred_lft 1803687sec

This also poses the question: How can I grab a specific IP address for an interface using network? In my application for example, I am interested in the scope global address when available, otherwise in the scope local address.

nsgundy avatar Jan 11 '18 15:01 nsgundy