簡體   English   中英

從PC獲取Mac地址並進行比較失敗

[英]Getting mac address from pc and compare it fails

我在sqlite3中使用python 2.7

我創建了一個空表,並創建了一個函數來檢查表是否為空,它將獲取當前PC的mac地址並將其存儲在表中,每次程序工作時它都將工作,然后如果表不為空,調用另一個函數,該函數獲取當前的mac並將其與存儲在表中的mac進行比較,如果其不相同,則關閉程序,這是代碼:

def active():
    from uuid import getnode as get_mac
    mac = get_mac()
    name = 666
    conn = sqlite3.connect('storage/container.db')
    conn.row_factory = lambda c, row: row[0]
    c = conn.cursor()
    c.execute("SELECT COUNT(*) FROM mac")
    count = c.fetchall()[0]
    conn.close()
    if count == 0:
        conn = sqlite3.connect('storage/container.db')
        conn.row_factory = lambda c, row: row[0]
        c = conn.cursor()
        c.execute("INSERT INTO mac (name, macAddress) VALUES (?, ?)", (name, mac, ))
        conn.commit()
        conn.close()
    else:
        checking()




def checking():
    from uuid import getnode as get_mac
    mac = get_mac()
    conn = sqlite3.connect('storage/container.db')
    conn.row_factory = lambda c, row: row[0]
    c = conn.cursor()
    c.execute("SELECT macAddress FROM mac WHERE name = 666")    
    table_mac = c.fetchall()[0]
    if mac == table_mac:
        critical_title1 = 'أهلاً بك '
        critical_title = critical_title1.decode('utf-8')
        critical_msg1 = "تم تأكيد صلاحية النسخة للإستخدام "
        critical_msg = critical_msg1.decode('utf-8')
        QtGui.QMessageBox.information(mainWindow, critical_title, critical_msg)
    else:
        critical_title1 = 'خطأ'
        critical_title = critical_title1.decode('utf-8')
        critical_msg1 = "لا يمكنك إستخدام البرنامج من دون شراء نسختك الخاصة"
        critical_msg = critical_msg1.decode('utf-8')
        QtGui.QMessageBox.critical(mainWindow, critical_title, critical_msg)
        sys.exit()

一切正常,程序已經捕獲了mac地址,然后將其添加到表中,但是,在所有情況下,它都顯示了錯誤,該錯誤將在程序之后關閉程序..忽略了if-else語句,該語句應停止該錯誤顯示

我認為問題在這里:

if mac == table_mac:
    critical_title1 = 'أهلاً بك '
    critical_title = critical_title1.decode('utf-8')
    critical_msg1 = "تم تأكيد صلاحية النسخة للإستخدام "
    critical_msg = critical_msg1.decode('utf-8')
    QtGui.QMessageBox.information(mainWindow, critical_title, critical_msg)
else:
    critical_title1 = 'خطأ'
    critical_title = critical_title1.decode('utf-8')
    critical_msg1 = "لا يمكنك إستخدام البرنامج من دون شراء نسختك الخاصة"
    critical_msg = critical_msg1.decode('utf-8')
    QtGui.QMessageBox.critical(mainWindow, critical_title, critical_msg)
    sys.exit()

注意

主要問題是沒有回溯錯誤,盡管滿足了if mac == table_mac:的條件,但它僅顯示最后的else語句

問題是我試圖從剛更改的第一個函數中調用第二個函數

else:
    checking()

pass ,然后為兩個功能添加自動運行命令,效果很好

active()
checking()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM