--- python-ethtool-0.6/pifconfig.py.orig 2013-08-07 17:11:51.483883885 +0200
+++ python-ethtool-0.6/pifconfig.py 2013-08-07 17:20:31.004075388 +0200
@@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
-import getopt, ethtool, sys
+import getopt, ethtool, socket, struct, sys
from optparse import OptionParser
def flags2str(flags):
@@ -54,18 +54,23 @@
return string.strip()
+def bits2netmask(bits):
+ mask = (1<<32) - (1<<32>>bits)
+ return socket.inet_ntoa(struct.pack(">L", mask))
+
def show_config(device):
- ipaddr = ethtool.get_ipaddr(device)
- netmask = ethtool.get_netmask(device)
+ info = ethtool.get_interfaces_info(device)[0]
flags = ethtool.get_flags(device)
print '%-9.9s' % device,
if not (flags & ethtool.IFF_LOOPBACK):
- print "HWaddr %s" % ethtool.get_hwaddr(device),
- print '''
- inet addr:%s''' % ipaddr,
- if not (flags & (ethtool.IFF_LOOPBACK | ethtool.IFF_POINTOPOINT)):
- print "Bcast:%s" % ethtool.get_broadcast(device),
- print ' Mask:%s' % netmask
+ print "HWaddr %s" % ethtool.get_hwaddr(device)
+ else:
+ print
+ for addr in info.get_ipv4_addresses():
+ print ' inet addr:%s' % addr.address,
+ if not (flags & (ethtool.IFF_LOOPBACK | ethtool.IFF_POINTOPOINT)):
+ print "Bcast:%s" % ethtool.get_broadcast(device),
+ print ' Mask:%s' % bits2netmask(addr.netmask)
for info in ethtool.get_interfaces_info(device):
for addr in info.get_ipv6_addresses():
print (" inet6 addr: %s/%s Scope: %s"