Server IP : 172.16.15.8 / Your IP : 18.222.92.56 Web Server : Apache System : Linux zeus.vwu.edu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Wed Nov 6 14:29:02 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.2.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0555) : /sbin/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
#!/usr/libexec/platform-python -s # -*- python -*- # -*- coding: utf-8 -*- # Copyright (C) 2008 Red Hat Inc. # # Arnaldo Carvalho de Melo <acme@redhat.com> # # This application is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2. # # This application is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. from __future__ import unicode_literals, print_function import ethtool import socket import struct import sys from optparse import OptionParser def bits2netmask(bits): mask = (1 << 32) - (1 << 32 >> bits) return socket.inet_ntoa(struct.pack(">L", mask)) def flags2str(flags): string = '' if flags & ethtool.IFF_UP: string += 'UP ' if flags & ethtool.IFF_BROADCAST: string += 'BROADCAST ' if flags & ethtool.IFF_DEBUG: string += 'DEBUG ' if flags & ethtool.IFF_LOOPBACK: string += 'LOOPBACK ' if flags & ethtool.IFF_POINTOPOINT: string += 'POINTOPOINT ' if flags & ethtool.IFF_NOTRAILERS: string += 'NOTRAILERS ' if flags & ethtool.IFF_RUNNING: string += 'RUNNING ' if flags & ethtool.IFF_NOARP: string += 'NOARP ' if flags & ethtool.IFF_PROMISC: string += 'PROMISC ' if flags & ethtool.IFF_ALLMULTI: string += 'ALLMULTI ' if flags & ethtool.IFF_MASTER: string += 'MASTER ' if flags & ethtool.IFF_SLAVE: string += 'SLAVE ' if flags & ethtool.IFF_MULTICAST: string += 'MULTICAST ' if flags & ethtool.IFF_PORTSEL: string += 'PORTSEL ' if flags & ethtool.IFF_AUTOMEDIA: string += 'AUTOMEDIA ' if flags & ethtool.IFF_DYNAMIC: string += 'DYNAMIC ' return string.strip() def show_config(device): flags = ethtool.get_flags(device) for info in ethtool.get_interfaces_info(device): print(device) if not (flags & ethtool.IFF_LOOPBACK): print('\tHWaddr %s' % ethtool.get_hwaddr(device)) for addr in info.get_ipv4_addresses(): print('\tinet addr:%s' % addr.address, end=" ") if not (flags & (ethtool.IFF_LOOPBACK | ethtool.IFF_POINTOPOINT)): print('Bcast:%s' % addr.broadcast, end=" ") print('Mask:%s' % bits2netmask(addr.netmask)) for addr in info.get_ipv6_addresses(): print('\tinet6 addr: %s/%s Scope: %s' % (addr.address, addr.netmask, addr.scope)) print('\t%s\n' % flags2str(flags)) print def main(): usage = 'usage: %prog [interface [interface [interface] ...]]' parser = OptionParser(usage=usage) (opts, args) = parser.parse_args() if args is None or len(args) == 0: sel_devs = ethtool.get_active_devices() else: sel_devs = args for device in sel_devs: try: show_config(device) except Exception as ex: print('** ERROR ** [Device %s]: %s' % (device, str(ex))) sys.exit(2) if __name__ == '__main__': main()