2017-06-18 4 views
0

question bizarre, je suis sur mon mac essayer d'obtenir mon adresse mac mais quand je l'imprime, il dit « Occupé ». Mon code est le suivant:Kodi python retourne l'adresse mac occupé

import sys 
from urllib import urlencode 
from urlparse import parse_qsl 
import xbmcaddon 
import xbmcgui 
import xbmcplugin 
import xbmc 
import requests 

addon  = xbmcaddon.Addon() 
addonname = addon.getAddonInfo('name') 
mac_address = xbmc.getInfoLabel("network.macaddress") 

print(mac_address) 

Dois-je obtenir mon adresse MAC d'une manière différente?

Répondre

0

est ici une solution multi-plateforme à l'aide des modules BUILTIN seulement.

>>> from uuid import getnode as get_mac 
>>> mac = get_mac() 
>>> hex(mac) 

Utiliser avec prudence si vous avez plusieurs cartes réseau, parce que ça va revenir seul d'entre eux. En outre, si elle ne peut pas détecter votre MAC, il va revenir un long aléatoire avec son jeu 8 bits à 1.

+0

Que faut-il faire Incase un nombre aléatoire est retourné. Y a-t-il un correctif pour la méthode qui a été posée dans la question? Kodi acquiert l'adresse MAC pour elle-même avec une certaine méthode, ne pouvons-nous pas comprendre cette méthode? – AqibBangash

0

KODI prend quelques secondes pour lire l'adresse MAC. Vous remarquerez peut-être que lorsque vous affichez les paramètres réseau, le message Occupé s'affiche jusqu'à ce que l'adresse MAC soit reçue. J'ai couru un planificateur et qui vérifie le MAC à nouveau & à nouveau jusqu'à ce qu'il soit pas égal à « Occupé »

repeatGap = 5 
scheduler = sched.scheduler(time.time, time.sleep) 

def checkMac(sc): 
    mac_address = xbmc.getInfoLabel("network.macaddress") 

    if mac_address!="Busy": 
     LOGIN(mac_address,True) 
    else: 
     scheduler.enter(repeatGap, 1, checkMac, (sc,)) 

scheduler.enter(0, 1, checkMac, (s,)) 
scheduler.run()