def get_mac_address(ifname): if platform.system() == "Linux": # pp.pprint(netifaces.ifaddresses(ifname)) # 所有地址信息 2 为IPv4, 10 为IPv6, 17 为以太网 # { 2: [ { 'addr': '10.1.1.80', # 'broadcast': '10.1.1.255', # 'netmask': '255.255.255.0'}], # 10: [ {'addr': '2001:1::80', 'netmask': 'ffff:ffff:ffff:ffff::/64'}, # { 'addr': 'fe80::250:56ff:feab:2508%ens33', # 'netmask': 'ffff:ffff:ffff:ffff::/64'}], # 17: [{'addr': '00:50:56:ab:25:08', 'broadcast': 'ff:ff:ff:ff:ff:ff'}]} # AF_LINK表示以太网 # print(netifaces.AF_LINK) # 17 try: return netifaces.ifaddresses(ifname)[netifaces.AF_LINK][0]['addr'] except ValueError: return None elif platform.system() == "Windows": from WIN_IFNAME import win_from_name_get_id if_id = win_from_name_get_id(ifname) if not if_id: return None else: return netifaces.ifaddresses(if_id)[netifaces.AF_LINK][0]['addr'] else: print('操作系统不支持,本脚本只能工作在Windows或者Linux环境!')
def get_ifname(ifname): if platform.system() == "Linux": return ifname elif platform.system() == "Windows": from WIN_IFNAME import win_from_name_get_id return win_from_name_get_id(ifname) else: return None
def get_ipv6_address(ifname): if platform.system() == 'Linux': return ifaddresses(ifname)[AF_INET6][0]['addr'] elif platform.system() == 'Windows': from WIN_IFNAME import win_from_name_get_id if_id = win_from_name_get_id(ifname) return ifaddresses(if_id)[AF_INET6][0]['addr'] else: print('操作系统不支持,本脚本只能工作在Windows或者Linux环境!')
def get_mac_address(ifname): if platform.system() == 'Linux': # pp.pprint(netifaces.ifaddresses(ifname)) # print(netifaces.AF_LINK) return netifaces.ifaddresses(ifname)[netifaces.AF_LINK][0]['addr'] elif platform.system() == 'Windows': from WIN_IFNAME import win_from_name_get_id if_id = win_from_name_get_id(ifname) return netifaces.ifaddresses(if_id)[netifaces.AF_LINK][0]['addr'] else: print('操作系统不支持,本脚本只能工作在Windows或者Linux环境!')
def get_ip_address(ifname): if platform.system() == "Linux": try: return ifaddresses(ifname)[AF_INET][0]['addr'] except ValueError: return None elif platform.system() == "Windows": from WIN_IFNAME import win_from_name_get_id if_id = win_from_name_get_id(ifname) if not if_id: return else: return ifaddresses(if_id)[AF_INET][0]['addr'] else: print('操作系统不支持,本脚本只能工作在Windows或者Linux环境!')