1.1.26.3. fejezet, nfcpy
Beküldte pzoli - 2017, november 27 - 6:50du
Minta kód a nfcpy használatára. Az alábbiak tesztelése MiFare Ultralight, MiFare Classic és MiFare DESFire tag-ekkel történt.
Listázzuk az USB eszközöket:
> lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 8087:0aa7 Intel Corp. Bus 001 Device 002: ID 04f2:b56d Chicony Electronics Co., Ltd Bus 001 Device 005: ID 04cc:2533 ST-Ericsson NFC device (PN533) Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Az USB portra csatlakoztatott olvasóhoz készítsük elő a felhasználó jogosultságot, hozzunk létre egy új udev szabályt:
sudo nano /etc/udev/rules.d/50-myusb.rules
Tartalma legyen a következő:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04cc", ATTRS{idProduct}=="2533", GROUP="users", MODE="0666"
Az idVendor és az idProduct legyen az USB eszköznek megfelelően beállítva. Ezután töltsük újra a udev szabályokat:
sudo udevadm control --reload
Ha csatlakoztatva volt az eszköz, akkor húzzuk ki és csatlakoztassuk újra. Ezt követően az eszköz egyszerű felhasználó számára is elérhető. Ezután telepítsük az nfcpy modult:
pip3 install nfcpy
Ez a kód a kártya tipusát, azonosítóját és a rajta tárolt ndef tagokat olvassa ki.
#!/usr/bin/python import nfc clf = nfc.ContactlessFrontend() #clf.open('usb:001:004') #usb port clf.open('usb:04cc:2533') #reader id tag = clf.connect(rdwr={'on-connect': lambda tag: False}) print(tag) if tag.ndef != None: for record in tag.ndef.records: print(record) clf.close()
Ez a kód pedig feltölti egy ndef rekorddal.
#!/usr/bin/python import nfc import ndef clf = nfc.ContactlessFrontend() #clf.open('usb:001:005') clf.open('usb:04cc:2533') print(clf) tag = clf.connect(rdwr={'on-connect': lambda tag: False}) print(tag) uri, title = 'http://nfcpy.org', 'nfcpy project' tag.ndef.records = [ndef.SmartposterRecord(uri, title)] clf.close()
- A hozzászóláshoz be kell jelentkezni