12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/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()
|