import psutil
import socket
import requests
# 兼容Windows
if 'AF_PACKET' not in socket.AddressFamily.__members__:
socket.AddressFamily.AF_PACKET = -1
print("CPU使用率:%.2f%%" % psutil.cpu_percent(interval=1))
memory_info = psutil.virtual_memory()
print("内存总量:%s" % memory_info.total)
print("已使用内存:%s" % memory_info.used)
print("内存使用率:%s%%" % memory_info.percent)
# # 获取主机名和IP地址
# host_name = socket.gethostname()
# # print("主机名:%s" % host_name)
# host_ip = socket.gethostbyname(host_name)
# print("IP地址: %s" % host_ip)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print("当前使用的ip地址:%s" % s.getsockname()[0])
s.close()
addr_dict = {}
interfaces = psutil.net_if_addrs()
for interface_name, interface_addresses in interfaces.items():
addr = {
}
for interface_address in interface_addresses:
# MAC 地址
if interface_address.family == socket.AddressFamily.AF_PACKET:
addr['mac'] = interface_address.address
# IPv4 地址
elif interface_address.family == socket.AddressFamily.AF_INET:
# 过滤本地地址
if interface_address.address == "127.0.0.1":
continue
addr['ipv4'] = interface_address.address
# IPv6 地址
elif interface_address.family == socket.AddressFamily.AF_INET6:
addr['ipv6'] = interface_address.address
addr_dict[interface_name] = addr
print("设备地址信息:")
print(addr_dict)
pub_ip = requests.get('https://ident.me').text.strip()
print("公网ip:", pub_ip)