forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/env python
 | 
						|
 | 
						|
# Copyright (c) 2009, Giampaolo Rodola'. All rights reserved.
 | 
						|
# Use of this source code is governed by a BSD-style license that can be
 | 
						|
# found in the LICENSE file.
 | 
						|
 | 
						|
"""
 | 
						|
A clone of 'ifconfig' on UNIX.
 | 
						|
 | 
						|
$ python examples/ifconfig.py
 | 
						|
lo (speed=0MB, duplex=?, mtu=65536, up=yes):
 | 
						|
    IPv4     address   : 127.0.0.1
 | 
						|
             broadcast : 127.0.0.1
 | 
						|
             netmask   : 255.0.0.0
 | 
						|
    IPv6     address   : ::1
 | 
						|
             netmask   : ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
 | 
						|
    MAC      address   : 00:00:00:00:00:00
 | 
						|
             broadcast : 00:00:00:00:00:00
 | 
						|
 | 
						|
wlan0 (speed=0MB, duplex=?, mtu=1500, up=yes):
 | 
						|
    IPv4     address   : 10.0.3.1
 | 
						|
             broadcast : 10.0.3.255
 | 
						|
             netmask   : 255.255.255.0
 | 
						|
    IPv6     address   : fe80::3005:adff:fe31:8698
 | 
						|
             netmask   : ffff:ffff:ffff:ffff::
 | 
						|
    MAC      address   : 32:05:ad:31:86:98
 | 
						|
             broadcast : ff:ff:ff:ff:ff:ff
 | 
						|
 | 
						|
eth0 (speed=100MB, duplex=full, mtu=1500, up=yes):
 | 
						|
    IPv4     address   : 192.168.1.2
 | 
						|
             broadcast : 192.168.1.255
 | 
						|
             netmask   : 255.255.255.0
 | 
						|
    IPv6     address   : fe80::c685:8ff:fe45:641
 | 
						|
             netmask   : ffff:ffff:ffff:ffff::
 | 
						|
    MAC      address   : c4:85:08:45:06:41
 | 
						|
             broadcast : ff:ff:ff:ff:ff:ff
 | 
						|
"""
 | 
						|
 | 
						|
from __future__ import print_function
 | 
						|
import socket
 | 
						|
 | 
						|
import psutil
 | 
						|
 | 
						|
 | 
						|
af_map = {
 | 
						|
    socket.AF_INET: 'IPv4',
 | 
						|
    socket.AF_INET6: 'IPv6',
 | 
						|
    psutil.AF_LINK: 'MAC',
 | 
						|
}
 | 
						|
 | 
						|
duplex_map = {
 | 
						|
    psutil.NIC_DUPLEX_FULL: "full",
 | 
						|
    psutil.NIC_DUPLEX_HALF: "half",
 | 
						|
    psutil.NIC_DUPLEX_UNKNOWN: "?",
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
def main():
 | 
						|
    stats = psutil.net_if_stats()
 | 
						|
    for nic, addrs in psutil.net_if_addrs().items():
 | 
						|
        if nic in stats:
 | 
						|
            print("%s (speed=%sMB, duplex=%s, mtu=%s, up=%s):" % (
 | 
						|
                nic, stats[nic].speed, duplex_map[stats[nic].duplex],
 | 
						|
                stats[nic].mtu, "yes" if stats[nic].isup else "no"))
 | 
						|
        else:
 | 
						|
            print("%s:" % (nic))
 | 
						|
        for addr in addrs:
 | 
						|
            print("    %-8s" % af_map.get(addr.family, addr.family), end="")
 | 
						|
            print(" address   : %s" % addr.address)
 | 
						|
            if addr.broadcast:
 | 
						|
                print("             broadcast : %s" % addr.broadcast)
 | 
						|
            if addr.netmask:
 | 
						|
                print("             netmask   : %s" % addr.netmask)
 | 
						|
        print("")
 | 
						|
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    main()
 |