GithubHelp home page GithubHelp logo

pyzk's Introduction

pyzk

Build Status

pyzk is an unofficial library of zksoftware (zkteco family) attendance machine.

Installation

There is some installation method you can use below:

  • pip
pip install -U pyzk
  • manual installation (clone and execute)
python setup.py install
  • clone and append the path of this project
import sys
import os
sys.path.insert(1,os.path.abspath("./pyzk"))
from zk import ZK, const

Documentation

Complete documentation can be found at Readthedocs .

API Usage

Create the ZK object and you will be ready to call api.

Basic Usage

The following is an example code block how to use pyzk.

from zk import ZK, const

conn = None
# create ZK instance
zk = ZK('192.168.1.201', port=4370, timeout=5, password=0, force_udp=False, ommit_ping=False)
try:
    # connect to device
    conn = zk.connect()
    # disable device, this method ensures no activity on the device while the process is run
    conn.disable_device()
    # another commands will be here!
    # Example: Get All Users
    users = conn.get_users()
    for user in users:
        privilege = 'User'
        if user.privilege == const.USER_ADMIN:
            privilege = 'Admin'
        print ('+ UID #{}'.format(user.uid))
        print ('  Name       : {}'.format(user.name))
        print ('  Privilege  : {}'.format(privilege))
        print ('  Password   : {}'.format(user.password))
        print ('  Group ID   : {}'.format(user.group_id))
        print ('  User  ID   : {}'.format(user.user_id))

    # Test Voice: Say Thank You
    conn.test_voice()
    # re-enable device after all commands already executed
    conn.enable_device()
except Exception as e:
    print ("Process terminate : {}".format(e))
finally:
    if conn:
        conn.disconnect()

Command List

  • Connect/Disconnect
conn = zk.connect()
conn.disconnect()
  • Disable/Enable Connected Device
# disable (lock) device, to ensure no user activity in device while some process run
conn.disable_device()
# re-enable the connected device and allow user activity in device again
conn.enable_device()
  • Get and Set Time
from datetime import datetime
# get current machine's time
zktime = conn.get_time()
print zktime
# update new time to machine
newtime = datetime.today()
conn.set_time(newtime)
  • Ger Firmware Version and Extra Information
conn.get_firmware_version()
conn.get_serialnumber()
conn.get_platform()
conn.get_device_name()
conn.get_face_version()
conn.get_fp_version()
conn.get_extend_fmt()
conn.get_user_extend_fmt()
conn.get_face_fun_on()
conn.get_compat_old_firmware()
conn.get_network_params()
conn.get_mac()
conn.get_pin_width()
  • Get Device Usage Space
conn.read_sizes()
print(conn)
#also:
conn.users
conn.fingers
conn.records
conn.users_cap
conn.fingers_cap
# TODO: add records_cap counter
# conn.records_cap
  • User Operation
# Create user
conn.set_user(uid=1, name='Fanani M. Ihsan', privilege=const.USER_ADMIN, password='12345678', group_id='', user_id='123', card=0)
# Get all users (will return list of User object)
users = conn.get_users()
# Delete User
conn.delete_user(uid=1)
conn.delete_user(user_id=123)
  • Fingerprints
# Get  a single Fingerprint (will return a Finger object)
template = conn.get_user_template(uid=1, temp_id=0) #temp_id is the finger to read 0~9
# Get all fingers from DB (will return a list of Finger objects)
fingers = conn.get_templates()

# to restore a finger, we need to assemble with the corresponding user
# pass a User object and a list of finger (max 10) to save
conn.save_user_template(user, [fing1 ,fing2])
  • High rate transfer

you can use the high rate mode to fasten the uploading of users and finger templates, you just need actual instances of users and fingers in a corresponding list/array.

usertemplates = [
    [user_1, [user_finger_1, user_finger_2]],
    [user_2, [finger_3]],
    ...
]
conn.HR_save_usertemplates(usertemplates)
  • Remote Fingerprint Enrollment
zk.enroll_user('1')
# but it doesn't work with some tcp ZK8 devices
  • Attendance Record
# Get attendances (will return list of Attendance object)
attendances = conn.get_attendance()
# Clear attendances records
conn.clear_attendance()
  • Test voice
"""
 play test voice:
  0 Thank You
  1 Incorrect Password
  2 Access Denied
  3 Invalid ID
  4 Please try again
  5 Dupicate ID
  6 The clock is flow
  7 The clock is full
  8 Duplicate finger
  9 Duplicated punch
  10 Beep kuko
  11 Beep siren
  12 -
  13 Beep bell
  14 -
  15 -
  16 -
  17 -
  18 Windows(R) opening sound
  19 -
  20 Fingerprint not emolt
  21 Password not emolt
  22 Badges not emolt
  23 Face not emolt
  24 Beep standard
  25 -
  26 -
  27 -
  28 -
  29 -
  30 Invalid user
  31 Invalid time period
  32 Invalid combination
  33 Illegal Access
  34 Disk space full
  35 Duplicate fingerprint
  36 Fingerprint not registered
  37 -
  38 -
  39 -
  40 -
  41 -
  42 -
  43 -
  43 -
  45 -
  46 -
  47 -
  48 -
  49 -
  50 -
  51 Focus eyes on the green box
  52 -
  53 -
  54 -
  55 -
"""
conn.test_voice(index=0) # will say 'Thank You'
  • Device Maintenance
# DANGER!!! This command will be erase all data in the device (incuded: user, attendance report, and finger database)
conn.clear_data()
# shutdown connected device
conn.poweroff()
# restart connected device
conn.restart()
# clear buffer
conn.free_data()
  • Live Capture!
# live capture! (timeout at 10s)
for attendance in conn.live_capture():
    if attendance is None:
        # implement here timeout logic
        pass
    else:
        print (attendance) # Attendance object

    #if you need to break gracefully just set
    #   conn.end_live_capture = True
    #
    # On interactive mode,
    # use Ctrl+C to break gracefully
    # this way it restores timeout
    # and disables live capture

Test Machine

usage: ./test_machine.py [-h] [-a ADDRESS] [-p PORT] [-T TIMEOUT] [-P PASSWORD]
                         [-f] [-t] [-r] [-u] [-l] [-D DELETEUSER] [-A ADDUSER]
                         [-E ENROLLUSER] [-F FINGER]

ZK Basic Reading Tests

optional arguments:
  -h, --help            show this help message and exit
  -a ADDRESS, --address ADDRESS
                        ZK device Address [192.168.1.201]
  -p PORT, --port PORT  ZK device port [4370]
  -T TIMEOUT, --timeout TIMEOUT
                        Default [10] seconds (0: disable timeout)
  -P PASSWORD, --password PASSWORD
                        Device code/password
  -b, --basic           get Basic Information only. (no bulk read, ie: users)
  -f, --force-udp       Force UDP communication
  -v, --verbose         Print debug information
  -t, --templates       Get templates / fingers (compare bulk and single read)
  -tr, --templates-raw  Get raw templates (dump templates)
  -r, --records         Get attendance records
  -u, --updatetime      Update Date/Time
  -l, --live-capture    Live Event Capture
  -o, --open-door       Open door

  -D DELETEUSER, --deleteuser DELETEUSER
                        Delete a User (uid)
  -A ADDUSER, --adduser ADDUSER
                        Add a User (uid) (and enroll)
  -E ENROLLUSER, --enrolluser ENROLLUSER
                        Enroll a User (uid)
  -F FINGER, --finger FINGER
                        Finger for enroll (fid=0)

Backup/Restore (Users and fingers only!!!) (WARNING! destructive test! do it at your own risk!)

usage: ./test_backup_restore.py [-h] [-a ADDRESS] [-p PORT] [-T TIMEOUT]
                              [-P PASSWORD] [-f] [-v] [-r]
                              [filename]

ZK Basic Backup/Restore Tool

positional arguments:
  filename              backup filename (default [serialnumber].bak)

optional arguments:
  -h, --help            show this help message and exit
  -a ADDRESS, --address ADDRESS
                        ZK device Address [192.168.1.201]
  -p PORT, --port PORT  ZK device port [4370]
  -T TIMEOUT, --timeout TIMEOUT
                        Default [10] seconds (0: disable timeout)
  -P PASSWORD, --password PASSWORD
                        Device code/password
  -f, --force-udp       Force UDP communication
  -v, --verbose         Print debug information
  -E, --erase           clean the device after writting backup!
  -r, --restore         Restore from backup
  -c, --clear-attendance
                        On Restore, also clears the attendance [default keep
                        attendance]

To restore on a different device, make sure to specify the filename. on restoring, it asks for the serial number of the destination device (to make sure it was correct, as it deletes all data) WARNING. there is no way to restore attendance data, you can keep it or clear it, but once cleared, there is no way to restore it.

Compatible devices

Firmware Version : Ver 6.21 Nov 19 2008
Platform : ZEM500
DeviceName : U580

Firmware Version : Ver 6.60 Apr 9 2010
Platform : ZEM510_TFT
DeviceName : T4-C

Firmware Version : Ver 6.60 Dec 1 2010
Platform : ZEM510_TFT
DeviceName : T4-C

Firmware Version : Ver 6.60 Mar 18 2011
Platform : ZEM600_TFT
DeviceName : iClock260

Platform         : ZEM560_TFT
Firmware Version : Ver 6.60 Feb  4 2012
DeviceName       :

Firmware Version : Ver 6.60 Oct 29 2012
Platform : ZEM800_TFT
DeviceName : iFace402/ID

Firmware Version : Ver 6.60 Mar 18 2013
Platform : ZEM560
DeviceName : MA300

Firmware Version : Ver 6.60 Dec 27 2014
Platform : ZEM600_TFT
DeviceName : iFace800/ID

Firmware Version : Ver 6.60 Nov 6 2017 (remote tested with correct results)
Platform : ZMM220_TFT
DeviceName : (unknown device) (broken info but at least the important data was read)

Firmware Version : Ver 6.60 Jun 9 2017
Platform : JZ4725_TFT
DeviceName : K20 (latest checked correctly!)

Firmware Version : Ver 6.60 Aug 23 2014
Platform : ZEM600_TFT
DeviceName : VF680 (face device only, but we read the user and attendance list!)

Firmware Version : Ver 6.70 Feb 16 2017
Platform : ZLM30_TFT
DeviceName : RSP10k1 (latest checked correctly!)

Firmware Version : Ver 6.60 Jun 16 2015
Platform : JZ4725_TFT
DeviceName : K14 (tested & verified working as expected.)

Firmware Version : Ver 6.60 Jan 13 2016
Platform         : ZMM220_TFT
DeviceName       : iFace702 (without voice function, test with encoding='gbk')

Firmware Version : Ver 6.60 Apr 26 2016
Platform         : ZMM210_TFT
DeviceName       : F18/ID

Firmware Version : Ver 6.60 May 25 2018
Platform         : JZ4725_TFT
DeviceName       : K40/ID

Latest tested (not really confirmed)

Firmware Version : Ver 6.60 Jun 16 2015
Platform : JZ4725_TFT
DeviceName : iClock260

Firmware Version : Ver 6.60 Jun 5 2015
Platform : ZMM200_TFT
DeviceName : iClock3000/ID (Active testing! latest fix)

Firmware Version : Ver 6.70 Jul 12 2013
Platform : ZEM600_TFT
DeviceName : iClock880-H/ID (Active testing! latest fix)

Not Working (needs more tests, more information)

Firmware Version : Ver 6.4.1 (build 99) (display version 2012-08-31)
Platform :
DeviceName : iClock260 (no capture data - probably similar problem as the latest TESTED)

If you have another version tested and it worked, please inform me to update this list!

Todo

  • Create better documentation
  • Finger template downloader & uploader
  • HTTP Rest api
  • Create real time api (if possible)
  • and much more ...

pyzk's People

Contributors

ajayramaswamy avatar alsum avatar fananimi avatar fedotovaleksandr avatar hereabdulla avatar icarome avatar josdegraeve avatar jtarun4625 avatar kurenai-ryu avatar ljakob avatar mahesh-wor avatar raheelaslam111 avatar rtdany10 avatar shubhamoy avatar sowrensen avatar ykptke avatar yuht avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyzk's Issues

cannot connect latest machine such as U100

I have buy a new u100,
and this lib no longer work.
with the error:
zk.exception.ZKErrorResponse: Invalid response
and i check it response:2005 (CMD_ACK_UNAUTH)
but i have setted the connection password to 0 which means no password
It work for the old one.

Adding support for python 3

Is your feature request related to a problem? Please describe.
Problems with installation for python 3.6

Describe the solution you'd like
Fix imports to relative in base module
change xrange to range
add test env to travis for 3.6

Describe alternatives you've considered
I don't know

Additional context
Pull request #28

What are the Status and Punch in get_attendance from bio metric device

Hi Everyone,
I am getting the attendance from the bio metric device of getting the user_id,timestamp ,status and punch i was unable to understand the status and punch fields getting from the bio metric device can you please help in this issue to resolve this and i am getting 4,1,101,104 as the default values for the status

Thanks in Advance,
Happy Codding.....

Uploading Fingerprint

We need to upload fingerprint of users with creating users. I have found that there is a command in const.py file for this requirement "CMD_USERTEMP_RRQ" but it is not implemented. could you give a hint or a help?

Broken pipe

Hello,

Broken pipe occurs when pyzk 0.9 tries to connect to a device. It's running under python 3.6.7 and Ubuntu 18.04.
pyzk 0.6 successfully connects to the same device under python 2.7 and ubuntu 16.04.
I could not install pyzk 0.6 under python 3.6.7 and Ubuntu 18.04 but pyzk 0.9 was successfully installed.

  • Output of test_machine.py
    pyzk1

  • Output of tshark on port 4370
    pyzk2

Listen for fingerprint scan events (feature request and/or question)

Problem:
We would like to develop a desktop app that:

  1. Connects using Wi-Fi to ZKTeco Fingerprint Door Lock
  2. Listens for finger-scan events (to get the fingerprint's hash, MD5 or something).
  3. As soon as an unregistered fingerprint-hash is detected,
    • Checks our web-server for existing fingerprint hashes.
    • If it exists, checks some conditions and decides to open the door, or, show a message on the desktop.

But we do not know if "listening for unregistered users" is even possible!

Solution we'd like, It should be possible to:

  1. Remotely listen for any fingerprint hash (even when unregistered).
  2. Opening door remotely (I think this one is already supported).

An alternative we've considered: Using Finger-scanner module, with some kind of separately bought electronic lock.

Additional context: We would use this app for a gym, where only persons who have subscription left are allowed to enter.
And only admins and/or owners are directly registered on the device.

Can't Enroll user remotely

I am using ZTeco FV18 device. when a called enroll_user() function in my script it change the device mode to enroll users and a window appear on device screen, display a message "Press the finger for the first time". Then it through exception of "timeout" and exit the program.

Empty attendances and users

Hello,

I was able to log in to my ZKTeco SCR100 device but I am unable to retrieve any attendances or users info.

I can succesfully restart device using conn.restart() or clear attendances using conn.clear_attendance().

When I use code:

import sys

from zk import ZK, const

sys.path.append("zk")

conn = None
zk = ZK('192.168.1.202', port=4370, timeout=5)
try:
    print 'Connecting to device ...'
    conn = zk.connect()
    print 'Disabling device ...'
    conn.disable_device()
    print 'Firmware Version: : {}'.format(conn.get_firmware_version())
    print conn.get_attendance()
    print conn.get_users()

    print 'Enabling device ...'
    conn.enable_device()
except Exception, e:
    print "Process terminate : {}".format(e)
finally:
    if conn:
        conn.disconnect()

I get:

Connecting to device ...
Disabling device ...
Firmware Version: : Ver 6.22 Mar 27 2015
[]
[]
Enabling device ...

Can you help me retrieve attendance info?

Get attendance for certain amount of date

I returned the attendance successfully but problem is:
How I am going to generate attendance for a specific date, for example today?

What I have tried:

I tried to get all the attendance and filter it by code but problem is that I will return lots of unwanted data from the device for a very long period of time and recalculate it, which is not the best way to do it

zk.exception.ZKNetworkError: TCP packet invalid

Describe the bug
Hi @fananimi,
We got this error message when we tried to connect to our device.

raise ZKNetworkError(str(e))
zk.exception.ZKNetworkError: TCP packet invalid

System (please complete the following information):

  • OS: Ubuntu 18.04
  • Python version 3.6
  • Machine type: Finger Plus ZT1200

Appreciate your help and feedback.

Thank you,
-gs

I cannot set user with uid 88888888.

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. initialize data '...'
  2. execute command '....'
  3. See error

Expected behavior
A clear and concise description of what you expected to happen.

Capture Data
Try to always include captured data (pcap files from wireshark (tutorial), and verbose output from test_machine if applicable)

System (please complete the following information):

  • OS: [e.g. iOS, Debian 9]
  • Python version [e.g. 2.7, 3.5]]

Additional context
Add any other context about the problem here.

set_user syntax error

Trying to set user properties. got syntax error.

conn.set_user(uid=131, name='Fanani M. Ihsan', privilege=const.USER_ADMIN, password='12345678', group_id='', user_id='123')
SyntaxError: invalid syntax - > password "=" section

I followed as per your examples. but unable to execute the code.

Could please help?

Sankar

Current Attendances

I can sucessfully connect and list users and attendances and live capture too. The stock software is kind of clunky, yet it can quickly show who is checked in currently. Probably, it is coded in users list?

PS: The device is branded TimeMoto - here device info, you may want to add it to the list of supported - do you need more info than below?

Firmware Version : Ver 6.60 Jul  1 2019
Platform : ZLM60_TFT
DeviceName : TM-616

ImportError: cannot import name 'ZK'

I've installed the project copy/paste the code and it's giving me this error:

Traceback (most recent call last):
File "C:\Users\slim\Desktop\zk\zk.py", line 2, in
from zk import ZK, const
File "C:\Users\slim\Desktop\zk\zk.py", line 2, in
from zk import ZK, const
ImportError: cannot import name 'ZK'

Need package updated on pypi

This package(version: 0.6) installed from pypi has many issues. But installed from github is all fine.

This may because forget push the latest release on pypi.

At last, thanks for the package.

Platform AK3750WIFI_TFT support (DeviceName D2)

Describe the bug
It seems that the platform AK3750WIFI_TFT (DeviceName D2) is not fully supported, as I get no useful data from device, such as attendance records.

To Reproduce
Steps to reproduce the behavior:

  1. Run test_machine.py - a IP -r
  2. See no attendance records
# ./test_machine.py -a 192.168.1.199 -r -v
Connecting to device ...
SDK build=1      : True
Disabling device ...
ExtendFmt        : None
UsrExtFmt        : 0
Face FunOn       : None
Face Version     : None
Finger Version   : 10
Old Firm compat  : None
IP:192.168.1.199 mask:255.255.255.0 gateway:192.168.1.254
Time             : 2019-05-17 10:42:58
Firmware Version : Ver 6.60 Jun 05 2018
Platform         : AK3750WIFI_TFT
DeviceName       : D2
Pin Width        : 9
Serial Number    : AWXH185160096
MAC: 00:17:61:B0:4C:D6

--- sizes & capacity ---
00000000
ZK tcp://192.168.1.199:4370 users[72]:0/0 fingers:0/0, records:0/0 faces:0/0

--- Get User ---
00000000
    took 0.114[s]
    took 0.114[s]
Read Records...
00000000
    took 0.130[s]
    took 0.130[s]

--- sizes & capacity ---
00000000
ZK tcp://192.168.1.199:4370 users[72]:0/0 fingers:0/0, records:0/0 faces:0/0

Enabling device ...
ok bye!

Expected behavior
I expect to get attendance records.

Capture Data

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
10:50:25.536597 IP 192.168.1.37 > 192.168.1.199: ICMP echo request, id 8159, seq 1, length 64
	0x0000:  4500 0054 a3c9 4000 4001 12a3 c0a8 0125  E..T..@.@......%
	0x0010:  c0a8 01c7 0800 5e4a 1fdf 0001 d175 de5c  ......^J.....u.\
	0x0020:  0000 0000 0330 0800 0000 0000 1011 1213  .....0..........
	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
	0x0050:  3435 3637                                4567
10:50:25.811946 IP 192.168.1.199 > 192.168.1.37: ICMP echo reply, id 8159, seq 1, length 64
	0x0000:  4500 0054 a3c9 4000 ff01 53a2 c0a8 01c7  [email protected].....
	0x0010:  c0a8 0125 0000 664a 1fdf 0001 d175 de5c  ...%..fJ.....u.\
	0x0020:  0000 0000 0330 0800 0000 0000 1011 1213  .....0..........
	0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223  .............!"#
	0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233  $%&'()*+,-./0123
	0x0050:  3435 3637                                4567
10:50:25.812536 IP 192.168.1.37.39984 > 192.168.1.199.4370: Flags [S], seq 1410256184, win 29200, options [mss 1460,sackOK,TS val 181155378 ecr 0,nop,wscale 7], length 0
	0x0000:  4500 003c fb0a 4000 4006 bb74 c0a8 0125  E..<..@[email protected]...%
	0x0010:  c0a8 01c7 9c30 1112 540e cd38 0000 0000  .....0..T..8....
	0x0020:  a002 7210 422b 0000 0204 05b4 0402 080a  ..r.B+..........
	0x0030:  0acc 3632 0000 0000 0103 0307            ..62........
10:50:25.815901 IP 192.168.1.199.4370 > 192.168.1.37.39984: Flags [S.], seq 28402, ack 1410256185, win 5840, options [mss 1460], length 0
	0x0000:  4500 002c 094f 0000 ff06 2e40 c0a8 01c7  E..,.O.....@....
	0x0010:  c0a8 0125 1112 9c30 0000 6ef2 540e cd39  ...%...0..n.T..9
	0x0020:  6012 16d0 bf8c 0000 0204 05b4 0000       `.............
10:50:25.815949 IP 192.168.1.37.39984 > 192.168.1.199.4370: Flags [.], ack 1, win 29200, length 0
	0x0000:  4500 0028 fb0b 4000 4006 bb87 c0a8 0125  E..(..@.@......%
	0x0010:  c0a8 01c7 9c30 1112 540e cd39 0000 6ef3  .....0..T..9..n.
	0x0020:  5010 7210 7c09 0000                      P.r.|...
10:50:25.815995 IP 192.168.1.37.39984 > 192.168.1.199.4370: Flags [F.], seq 1, ack 1, win 29200, length 0
	0x0000:  4500 0028 fb0c 4000 4006 bb86 c0a8 0125  E..(..@.@......%
	0x0010:  c0a8 01c7 9c30 1112 540e cd39 0000 6ef3  .....0..T..9..n.
	0x0020:  5011 7210 7c08 0000                      P.r.|...
10:50:25.816080 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [S], seq 1030867563, win 29200, options [mss 1460,sackOK,TS val 181155378 ecr 0,nop,wscale 7], length 0
	0x0000:  4500 003c fc59 4000 4006 ba25 c0a8 0125  E..<.Y@.@..%...%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ca6b 0000 0000  .....2..=q.k....
	0x0020:  a002 7210 5b93 0000 0204 05b4 0402 080a  ..r.[...........
	0x0030:  0acc 3632 0000 0000 0103 0307            ..62........
10:50:25.817940 IP 192.168.1.199.4370 > 192.168.1.37.39984: Flags [F.], seq 1, ack 2, win 5839, length 0
	0x0000:  4500 0028 0950 0000 ff06 2e43 c0a8 01c7  E..(.P.....C....
	0x0010:  c0a8 0125 1112 9c30 0000 6ef3 540e cd3a  ...%...0..n.T..:
	0x0020:  5011 16cf d748 0000 0000 0000 0000       P....H........
10:50:25.817973 IP 192.168.1.37.39984 > 192.168.1.199.4370: Flags [.], ack 2, win 29200, length 0
	0x0000:  4500 0028 fb0d 4000 4006 bb85 c0a8 0125  E..(..@.@......%
	0x0010:  c0a8 01c7 9c30 1112 540e cd3a 0000 6ef4  .....0..T..:..n.
	0x0020:  5010 7210 7c07 0000                      P.r.|...
10:50:25.818235 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [S.], seq 29155, ack 1030867564, win 5840, options [mss 1460], length 0
	0x0000:  4500 002c 0951 0000 ff06 2e3e c0a8 01c7  E..,.Q.....>....
	0x0010:  c0a8 0125 1112 9c32 0000 71e3 3d71 ca6c  ...%...2..q.=q.l
	0x0020:  6012 16d0 d603 0000 0204 05b4 0000       `.............
10:50:25.818255 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [.], ack 1, win 29200, length 0
	0x0000:  4500 0028 fc5a 4000 4006 ba38 c0a8 0125  E..(.Z@[email protected]...%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ca6c 0000 71e4  .....2..=q.l..q.
	0x0020:  5010 7210 9280 0000                      P.r.....
10:50:25.818344 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 1:17, ack 1, win 29200, length 16
	0x0000:  4500 0038 fc5b 4000 4006 ba27 c0a8 0125  E..8.[@.@..'...%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ca6c 0000 71e4  .....2..=q.l..q.
	0x0020:  5018 7210 b79a 0000 5050 827d 0800 0000  P.r.....PP.}....
	0x0030:  e803 17fc 0000 0000                      ........
10:50:25.853804 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 17, win 5824, length 0
	0x0000:  4500 0028 0952 0000 ff06 2e41 c0a8 01c7  E..(.R.....A....
	0x0010:  c0a8 0125 1112 9c32 0000 71e4 3d71 ca7c  ...%...2..q.=q.|
	0x0020:  5010 16c0 edc0 0000 0000 0000 0000       P.............
10:50:26.058882 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 1:17, ack 17, win 5824, length 16
	0x0000:  4500 0038 0953 0000 ff06 2e30 c0a8 01c7  E..8.S.....0....
	0x0010:  c0a8 0125 1112 9c32 0000 71e4 3d71 ca7c  ...%...2..q.=q.|
	0x0020:  5018 16c0 12db 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  d007 f27a 3d7d 0000                      ...z=}..
10:50:26.058904 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [.], ack 17, win 29200, length 0
	0x0000:  4500 0028 fc5c 4000 4006 ba36 c0a8 0125  E..(.\@[email protected]...%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ca7c 0000 71f4  .....2..=q.|..q.
	0x0020:  5010 7210 9260 0000                      P.r..`..
10:50:26.059025 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 17:43, ack 17, win 29200, length 26
	0x0000:  4500 0042 fc5d 4000 4006 ba1b c0a8 0125  E..B.]@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ca7c 0000 71f4  .....2..=q.|..q.
	0x0020:  5018 7210 ad70 0000 5050 827d 1200 0000  P.r..p..PP.}....
	0x0030:  0c00 f7fc 3d7d 0100 5344 4b42 7569 6c64  ....=}..SDKBuild
	0x0040:  3d31                                     =1
10:50:26.103992 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 43, win 5798, length 0
	0x0000:  4500 0028 0954 0000 ff06 2e3f c0a8 01c7  E..(.T.....?....
	0x0010:  c0a8 0125 1112 9c32 0000 71f4 3d71 ca96  ...%...2..q.=q..
	0x0020:  5010 16a6 edb0 0000 0000 0000 0000       P.............
10:50:26.191911 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 17:33, ack 43, win 5798, length 16
	0x0000:  4500 0038 0955 0000 ff06 2e2e c0a8 01c7  E..8.U..........
	0x0010:  c0a8 0125 1112 9c32 0000 71f4 3d71 ca96  ...%...2..q.=q..
	0x0020:  5018 16a6 12cb 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  d007 f17a 3d7d 0100                      ...z=}..
10:50:26.192098 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 43:59, ack 33, win 29200, length 16
	0x0000:  4500 0038 fc5e 4000 4006 ba24 c0a8 0125  E..8.^@.@..$...%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ca96 0000 7204  .....2..=q....r.
	0x0020:  5018 7210 b750 0000 5050 827d 0800 0000  P.r..P..PP.}....
	0x0030:  eb03 d57e 3d7d 0200                      ...~=}..
10:50:26.227918 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 59, win 5782, length 0
	0x0000:  4500 0028 0956 0000 ff06 2e3d c0a8 01c7  E..(.V.....=....
	0x0010:  c0a8 0125 1112 9c32 0000 7204 3d71 caa6  ...%...2..r.=q..
	0x0020:  5010 1696 eda0 0000 0000 0000 0000       P.............
10:50:26.330414 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 33:49, ack 59, win 5782, length 16
	0x0000:  4500 0038 0957 0000 ff06 2e2c c0a8 01c7  E..8.W.....,....
	0x0010:  c0a8 0125 1112 9c32 0000 7204 3d71 caa6  ...%...2..r.=q..
	0x0020:  5018 1696 12bb 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  d007 f07a 3d7d 0200                      ...z=}..
10:50:26.330729 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 59:86, ack 49, win 29200, length 27
	0x0000:  4500 0043 fc5f 4000 4006 ba18 c0a8 0125  E..C._@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 caa6 0000 7214  .....2..=q....r.
	0x0020:  5018 7210 ac25 0000 5050 827d 1300 0000  P.r..%..PP.}....
	0x0030:  0b00 869f 3d7d 0300 7e45 7874 656e 6446  ....=}..~ExtendF
	0x0040:  6d74 00                                  mt.
10:50:26.352530 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 86, win 5755, length 0
	0x0000:  4500 0028 0958 0000 ff06 2e3b c0a8 01c7  E..(.X.....;....
	0x0010:  c0a8 0125 1112 9c32 0000 7214 3d71 cac1  ...%...2..r.=q..
	0x0020:  5010 167b ed90 0000 0000 0000 0000       P..{..........
10:50:26.455965 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 49:65, ack 86, win 5755, length 16
	0x0000:  4500 0038 0959 0000 ff06 2e2a c0a8 01c7  E..8.Y.....*....
	0x0010:  c0a8 0125 1112 9c32 0000 7214 3d71 cac1  ...%...2..r.=q..
	0x0020:  5018 167b 12ab 0000 5050 827d 0800 0000  P..{....PP.}....
	0x0030:  d107 ee7a 3d7d 0300                      ...z=}..
10:50:26.456710 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 86:113, ack 65, win 29200, length 27
	0x0000:  4500 0043 fc60 4000 4006 ba17 c0a8 0125  E..C.`@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cac1 0000 7224  .....2..=q....r$
	0x0020:  5018 7210 abfa 0000 5050 827d 1300 0000  P.r.....PP.}....
	0x0030:  d107 bf97 3d7d 0400 7e45 7874 656e 6446  ....=}..~ExtendF
	0x0040:  6d74 00                                  mt.
10:50:26.478809 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 113, win 5728, length 0
	0x0000:  4500 0028 095a 0000 ff06 2e39 c0a8 01c7  E..(.Z.....9....
	0x0010:  c0a8 0125 1112 9c32 0000 7224 3d71 cadc  ...%...2..r$=q..
	0x0020:  5010 1660 ed80 0000 0000 0000 0000       P..`..........
10:50:26.593846 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 65:81, ack 113, win 5728, length 16
	0x0000:  4500 0038 095b 0000 ff06 2e28 c0a8 01c7  E..8.[.....(....
	0x0010:  c0a8 0125 1112 9c32 0000 7224 3d71 cadc  ...%...2..r$=q..
	0x0020:  5018 1660 129b 0000 5050 827d 0800 0000  P..`....PP.}....
	0x0030:  ffff be82 3d7d 0400                      ....=}..
10:50:26.593978 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 113:140, ack 81, win 29200, length 27
	0x0000:  4500 0043 fc61 4000 4006 ba16 c0a8 0125  E..C.a@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cadc 0000 7234  .....2..=q....r4
	0x0020:  5018 7210 abcf 0000 5050 827d 1300 0000  P.r.....PP.}....
	0x0030:  ffff 8f9f 3d7d 0500 7e45 7874 656e 6446  ....=}..~ExtendF
	0x0040:  6d74 00                                  mt.
10:50:26.603855 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 140, win 5701, length 0
	0x0000:  4500 0028 095c 0000 ff06 2e37 c0a8 01c7  E..(.\.....7....
	0x0010:  c0a8 0125 1112 9c32 0000 7234 3d71 caf7  ...%...2..r4=q..
	0x0020:  5010 1645 ed70 0000 0000 0000 0000       P..E.p........
10:50:26.718812 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 81:97, ack 140, win 5701, length 16
	0x0000:  4500 0038 095d 0000 ff06 2e26 c0a8 01c7  E..8.].....&....
	0x0010:  c0a8 0125 1112 9c32 0000 7234 3d71 caf7  ...%...2..r4=q..
	0x0020:  5018 1645 128b 0000 5050 827d 0800 0000  P..E....PP.}....
	0x0030:  ffff bd82 3d7d 0500                      ....=}..
10:50:26.718959 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 140:167, ack 97, win 29200, length 27
	0x0000:  4500 0043 fc62 4000 4006 ba15 c0a8 0125  E..C.b@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 caf7 0000 7244  .....2..=q....rD
	0x0020:  5018 7210 aba4 0000 5050 827d 1300 0000  P.r.....PP.}....
	0x0030:  ffff 8e9f 3d7d 0600 7e45 7874 656e 6446  ....=}..~ExtendF
	0x0040:  6d74 00                                  mt.
10:50:26.727640 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 167, win 5674, length 0
	0x0000:  4500 0028 095e 0000 ff06 2e35 c0a8 01c7  E..(.^.....5....
	0x0010:  c0a8 0125 1112 9c32 0000 7244 3d71 cb12  ...%...2..rD=q..
	0x0020:  5010 162a ed60 0000 0000 0000 0000       P..*.`........
10:50:26.823348 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 97:113, ack 167, win 5674, length 16
	0x0000:  4500 0038 095f 0000 ff06 2e24 c0a8 01c7  E..8._.....$....
	0x0010:  c0a8 0125 1112 9c32 0000 7244 3d71 cb12  ...%...2..rD=q..
	0x0020:  5018 162a 127b 0000 5050 827d 0800 0000  P..*.{..PP.}....
	0x0030:  ffff bc82 3d7d 0600                      ....=}..
10:50:26.823497 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 167:194, ack 113, win 29200, length 27
	0x0000:  4500 0043 fc63 4000 4006 ba14 c0a8 0125  E..C.c@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cb12 0000 7254  .....2..=q....rT
	0x0020:  5018 7210 ab79 0000 5050 827d 1300 0000  P.r..y..PP.}....
	0x0030:  ffff 8d9f 3d7d 0700 7e45 7874 656e 6446  ....=}..~ExtendF
	0x0040:  6d74 00                                  mt.
10:50:26.878789 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 194, win 5647, length 0
	0x0000:  4500 0028 0960 0000 ff06 2e33 c0a8 01c7  E..(.`.....3....
	0x0010:  c0a8 0125 1112 9c32 0000 7254 3d71 cb2d  ...%...2..rT=q.-
	0x0020:  5010 160f ed50 0000 0000 0000 0000       P....P........
10:50:26.983834 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 113:129, ack 194, win 5647, length 16
	0x0000:  4500 0038 0961 0000 ff06 2e22 c0a8 01c7  E..8.a....."....
	0x0010:  c0a8 0125 1112 9c32 0000 7254 3d71 cb2d  ...%...2..rT=q.-
	0x0020:  5018 160f 126b 0000 5050 827d 0800 0000  P....k..PP.}....
	0x0030:  ffff bb82 3d7d 0700                      ....=}..
10:50:26.984252 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 194:222, ack 129, win 29200, length 28
	0x0000:  4500 0044 fc64 4000 4006 ba12 c0a8 0125  E..D.d@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cb2d 0000 7264  .....2..=q.-..rd
	0x0020:  5018 7210 aa4d 0000 5050 827d 1400 0000  P.r..M..PP.}....
	0x0030:  0b00 18a0 3d7d 0800 7e55 7365 7245 7874  ....=}..~UserExt
	0x0040:  466d 7400                                Fmt.
10:50:27.103898 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 222, win 5619, length 0
	0x0000:  4500 0028 0962 0000 ff06 2e31 c0a8 01c7  E..(.b.....1....
	0x0010:  c0a8 0125 1112 9c32 0000 7264 3d71 cb49  ...%...2..rd=q.I
	0x0020:  5010 15f3 ed40 0000 0000 0000 0000       P....@........
10:50:27.127885 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 129:159, ack 222, win 5619, length 30
	0x0000:  4500 0046 0963 0000 ff06 2e12 c0a8 01c7  E..F.c..........
	0x0010:  c0a8 0125 1112 9c32 0000 7264 3d71 cb49  ...%...2..rd=q.I
	0x0020:  5018 15f3 044d 0000 5050 827d 1600 0000  P....M..PP.}....
	0x0030:  d007 235b 3d7d 0800 7e55 7365 7245 7874  ..#[=}..~UserExt
	0x0040:  466d 743d 3000                           Fmt=0.
10:50:27.128069 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 222:248, ack 159, win 29200, length 26
	0x0000:  4500 0042 fc65 4000 4006 ba13 c0a8 0125  E..B.e@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cb49 0000 7282  .....2..=q.I..r.
	0x0020:  5018 7210 ac15 0000 5050 827d 1200 0000  P.r.....PP.}....
	0x0030:  0b00 e1f6 3d7d 0900 4661 6365 4675 6e4f  ....=}..FaceFunO
	0x0040:  6e00                                     n.
10:50:27.227905 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 248, win 5593, length 0
	0x0000:  4500 0028 0964 0000 ff06 2e2f c0a8 01c7  E..(.d...../....
	0x0010:  c0a8 0125 1112 9c32 0000 7282 3d71 cb63  ...%...2..r.=q.c
	0x0020:  5010 15d9 ed22 0000 0000 0000 0000       P...."........
10:50:27.243835 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 159:175, ack 248, win 5593, length 16
	0x0000:  4500 0038 0965 0000 ff06 2e1e c0a8 01c7  E..8.e..........
	0x0010:  c0a8 0125 1112 9c32 0000 7282 3d71 cb63  ...%...2..r.=q.c
	0x0020:  5018 15d9 123d 0000 5050 827d 0800 0000  P....=..PP.}....
	0x0030:  d107 e87a 3d7d 0900                      ...z=}..
10:50:27.243958 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 248:274, ack 175, win 29200, length 26
	0x0000:  4500 0042 fc66 4000 4006 ba12 c0a8 0125  E..B.f@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cb63 0000 7292  .....2..=q.c..r.
	0x0020:  5018 7210 abeb 0000 5050 827d 1200 0000  P.r.....PP.}....
	0x0030:  d107 1aef 3d7d 0a00 4661 6365 4675 6e4f  ....=}..FaceFunO
	0x0040:  6e00                                     n.
10:50:27.351906 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 274, win 5567, length 0
	0x0000:  4500 0028 0966 0000 ff06 2e2d c0a8 01c7  E..(.f.....-....
	0x0010:  c0a8 0125 1112 9c32 0000 7292 3d71 cb7d  ...%...2..r.=q.}
	0x0020:  5010 15bf ed12 0000 0000 0000 0000       P.............
10:50:27.371920 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 175:191, ack 274, win 5567, length 16
	0x0000:  4500 0038 0967 0000 ff06 2e1c c0a8 01c7  E..8.g..........
	0x0010:  c0a8 0125 1112 9c32 0000 7292 3d71 cb7d  ...%...2..r.=q.}
	0x0020:  5018 15bf 122d 0000 5050 827d 0800 0000  P....-..PP.}....
	0x0030:  ffff b882 3d7d 0a00                      ....=}..
10:50:27.372176 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 274:300, ack 191, win 29200, length 26
	0x0000:  4500 0042 fc67 4000 4006 ba11 c0a8 0125  E..B.g@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cb7d 0000 72a2  .....2..=q.}..r.
	0x0020:  5018 7210 abc1 0000 5050 827d 1200 0000  P.r.....PP.}....
	0x0030:  ffff eaf6 3d7d 0b00 4661 6365 4675 6e4f  ....=}..FaceFunO
	0x0040:  6e00                                     n.
10:50:27.478836 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 300, win 5541, length 0
	0x0000:  4500 0028 0968 0000 ff06 2e2b c0a8 01c7  E..(.h.....+....
	0x0010:  c0a8 0125 1112 9c32 0000 72a2 3d71 cb97  ...%...2..r.=q..
	0x0020:  5010 15a5 ed02 0000 0000 0000 0000       P.............
10:50:27.498821 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 191:207, ack 300, win 5541, length 16
	0x0000:  4500 0038 0969 0000 ff06 2e1a c0a8 01c7  E..8.i..........
	0x0010:  c0a8 0125 1112 9c32 0000 72a2 3d71 cb97  ...%...2..r.=q..
	0x0020:  5018 15a5 121d 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  ffff b782 3d7d 0b00                      ....=}..
10:50:27.499114 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 300:326, ack 207, win 29200, length 26
	0x0000:  4500 0042 fc68 4000 4006 ba10 c0a8 0125  E..B.h@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cb97 0000 72b2  .....2..=q....r.
	0x0020:  5018 7210 ab97 0000 5050 827d 1200 0000  P.r.....PP.}....
	0x0030:  ffff e9f6 3d7d 0c00 4661 6365 4675 6e4f  ....=}..FaceFunO
	0x0040:  6e00                                     n.
10:50:27.602292 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 326, win 5515, length 0
	0x0000:  4500 0028 096a 0000 ff06 2e29 c0a8 01c7  E..(.j.....)....
	0x0010:  c0a8 0125 1112 9c32 0000 72b2 3d71 cbb1  ...%...2..r.=q..
	0x0020:  5010 158b ecf2 0000 0000 0000 0000       P.............
10:50:27.623878 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 207:223, ack 326, win 5515, length 16
	0x0000:  4500 0038 096b 0000 ff06 2e18 c0a8 01c7  E..8.k..........
	0x0010:  c0a8 0125 1112 9c32 0000 72b2 3d71 cbb1  ...%...2..r.=q..
	0x0020:  5018 158b 120d 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  ffff b682 3d7d 0c00                      ....=}..
10:50:27.624228 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 326:352, ack 223, win 29200, length 26
	0x0000:  4500 0042 fc69 4000 4006 ba0f c0a8 0125  E..B.i@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cbb1 0000 72c2  .....2..=q....r.
	0x0020:  5018 7210 ab6d 0000 5050 827d 1200 0000  P.r..m..PP.}....
	0x0030:  ffff e8f6 3d7d 0d00 4661 6365 4675 6e4f  ....=}..FaceFunO
	0x0040:  6e00                                     n.
10:50:27.728819 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 352, win 5489, length 0
	0x0000:  4500 0028 096c 0000 ff06 2e27 c0a8 01c7  E..(.l.....'....
	0x0010:  c0a8 0125 1112 9c32 0000 72c2 3d71 cbcb  ...%...2..r.=q..
	0x0020:  5010 1571 ece2 0000 0000 0000 0000       P..q..........
10:50:27.738810 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 223:239, ack 352, win 5489, length 16
	0x0000:  4500 0038 096d 0000 ff06 2e16 c0a8 01c7  E..8.m..........
	0x0010:  c0a8 0125 1112 9c32 0000 72c2 3d71 cbcb  ...%...2..r.=q..
	0x0020:  5018 1571 11fd 0000 5050 827d 0800 0000  P..q....PP.}....
	0x0030:  ffff b582 3d7d 0d00                      ....=}..
10:50:27.739184 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 352:382, ack 239, win 29200, length 30
	0x0000:  4500 0046 fc6a 4000 4006 ba0a c0a8 0125  E..F.j@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cbcb 0000 72d2  .....2..=q....r.
	0x0020:  5018 7210 a73f 0000 5050 827d 1600 0000  P.r..?..PP.}....
	0x0030:  0b00 0528 3d7d 0e00 5a4b 4661 6365 5665  ...(=}..ZKFaceVe
	0x0040:  7273 696f 6e00                           rsion.
10:50:27.853788 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 382, win 5459, length 0
	0x0000:  4500 0028 096e 0000 ff06 2e25 c0a8 01c7  E..(.n.....%....
	0x0010:  c0a8 0125 1112 9c32 0000 72d2 3d71 cbe9  ...%...2..r.=q..
	0x0020:  5010 1553 ecd2 0000 0000 0000 0000       P..S..........
10:50:27.863894 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 239:255, ack 382, win 5459, length 16
	0x0000:  4500 0038 096f 0000 ff06 2e14 c0a8 01c7  E..8.o..........
	0x0010:  c0a8 0125 1112 9c32 0000 72d2 3d71 cbe9  ...%...2..r.=q..
	0x0020:  5018 1553 11ed 0000 5050 827d 0800 0000  P..S....PP.}....
	0x0030:  d107 e37a 3d7d 0e00                      ...z=}..
10:50:27.864298 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 382:411, ack 255, win 29200, length 29
	0x0000:  4500 0045 fc6b 4000 4006 ba0a c0a8 0125  E..E.k@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cbe9 0000 72e2  .....2..=q....r.
	0x0020:  5018 7210 a812 0000 5050 827d 1500 0000  P.r.....PP.}....
	0x0030:  0b00 4641 3d7d 0f00 7e5a 4b46 5056 6572  ..FA=}..~ZKFPVer
	0x0040:  7369 6f6e 00                             sion.
10:50:27.977828 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 411, win 5430, length 0
	0x0000:  4500 0028 0970 0000 ff06 2e23 c0a8 01c7  E..(.p.....#....
	0x0010:  c0a8 0125 1112 9c32 0000 72e2 3d71 cc06  ...%...2..r.=q..
	0x0020:  5010 1536 ecc2 0000 0000 0000 0000       P..6..........
10:50:27.978769 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 255:287, ack 411, win 5430, length 32
	0x0000:  4500 0048 0971 0000 ff06 2e02 c0a8 01c7  E..H.q..........
	0x0010:  c0a8 0125 1112 9c32 0000 72e2 3d71 cc06  ...%...2..r.=q..
	0x0020:  5018 1536 01cd 0000 5050 827d 1800 0000  P..6....PP.}....
	0x0030:  d007 1408 3d7d 0f00 7e5a 4b46 5056 6572  ....=}..~ZKFPVer
	0x0040:  7369 6f6e 3d31 3000                      sion=10.
10:50:27.979183 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 411:445, ack 287, win 29200, length 34
	0x0000:  4500 004a fc6c 4000 4006 ba04 c0a8 0125  E..J.l@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cc06 0000 7302  .....2..=q....s.
	0x0020:  5018 7210 a2d0 0000 5050 827d 1a00 0000  P.r.....PP.}....
	0x0030:  0b00 441f 3d7d 1000 436f 6d70 6174 4f6c  ..D.=}..CompatOl
	0x0040:  6446 6972 6d77 6172 6500                 dFirmware.
10:50:28.107866 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 445, win 5396, length 0
	0x0000:  4500 0028 0972 0000 ff06 2e21 c0a8 01c7  E..(.r.....!....
	0x0010:  c0a8 0125 1112 9c32 0000 7302 3d71 cc28  ...%...2..s.=q.(
	0x0020:  5010 1514 eca2 0000 0000 0000 0000       P.............
10:50:28.113803 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 287:303, ack 445, win 5396, length 16
	0x0000:  4500 0038 0973 0000 ff06 2e10 c0a8 01c7  E..8.s..........
	0x0010:  c0a8 0125 1112 9c32 0000 7302 3d71 cc28  ...%...2..s.=q.(
	0x0020:  5018 1514 11bd 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  d107 e17a 3d7d 1000                      ...z=}..
10:50:28.114122 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 445:479, ack 303, win 29200, length 34
	0x0000:  4500 004a fc6d 4000 4006 ba03 c0a8 0125  E..J.m@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cc28 0000 7312  .....2..=q.(..s.
	0x0020:  5018 7210 a29e 0000 5050 827d 1a00 0000  P.r.....PP.}....
	0x0030:  d107 7d17 3d7d 1100 436f 6d70 6174 4f6c  ..}.=}..CompatOl
	0x0040:  6446 6972 6d77 6172 6500                 dFirmware.
10:50:28.228796 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 479, win 5362, length 0
	0x0000:  4500 0028 0974 0000 ff06 2e1f c0a8 01c7  E..(.t..........
	0x0010:  c0a8 0125 1112 9c32 0000 7312 3d71 cc4a  ...%...2..s.=q.J
	0x0020:  5010 14f2 ec92 0000 0000 0000 0000       P.............
10:50:28.239868 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 303:319, ack 479, win 5362, length 16
	0x0000:  4500 0038 0975 0000 ff06 2e0e c0a8 01c7  E..8.u..........
	0x0010:  c0a8 0125 1112 9c32 0000 7312 3d71 cc4a  ...%...2..s.=q.J
	0x0020:  5018 14f2 11ad 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  ffff b182 3d7d 1100                      ....=}..
10:50:28.240224 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 479:513, ack 319, win 29200, length 34
	0x0000:  4500 004a fc6e 4000 4006 ba02 c0a8 0125  E..J.n@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cc4a 0000 7322  .....2..=q.J..s"
	0x0020:  5018 7210 a26c 0000 5050 827d 1a00 0000  P.r..l..PP.}....
	0x0030:  ffff 4d1f 3d7d 1200 436f 6d70 6174 4f6c  ..M.=}..CompatOl
	0x0040:  6446 6972 6d77 6172 6500                 dFirmware.
10:50:28.351912 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 513, win 5328, length 0
	0x0000:  4500 0028 0976 0000 ff06 2e1d c0a8 01c7  E..(.v..........
	0x0010:  c0a8 0125 1112 9c32 0000 7322 3d71 cc6c  ...%...2..s"=q.l
	0x0020:  5010 14d0 ec82 0000 0000 0000 0000       P.............
10:50:28.363838 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 319:335, ack 513, win 5328, length 16
	0x0000:  4500 0038 0977 0000 ff06 2e0c c0a8 01c7  E..8.w..........
	0x0010:  c0a8 0125 1112 9c32 0000 7322 3d71 cc6c  ...%...2..s"=q.l
	0x0020:  5018 14d0 119d 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  ffff b082 3d7d 1200                      ....=}..
10:50:28.364476 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 513:547, ack 335, win 29200, length 34
	0x0000:  4500 004a fc6f 4000 4006 ba01 c0a8 0125  E..J.o@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cc6c 0000 7332  .....2..=q.l..s2
	0x0020:  5018 7210 a23a 0000 5050 827d 1a00 0000  P.r..:..PP.}....
	0x0030:  ffff 4c1f 3d7d 1300 436f 6d70 6174 4f6c  ..L.=}..CompatOl
	0x0040:  6446 6972 6d77 6172 6500                 dFirmware.
10:50:28.516095 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 547, win 5294, length 0
	0x0000:  4500 0028 0978 0000 ff06 2e1b c0a8 01c7  E..(.x..........
	0x0010:  c0a8 0125 1112 9c32 0000 7332 3d71 cc8e  ...%...2..s2=q..
	0x0020:  5010 14ae ec72 0000 0000 0000 0000       P....r........
10:50:28.518793 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 335:351, ack 547, win 5294, length 16
	0x0000:  4500 0038 0979 0000 ff06 2e0a c0a8 01c7  E..8.y..........
	0x0010:  c0a8 0125 1112 9c32 0000 7332 3d71 cc8e  ...%...2..s2=q..
	0x0020:  5018 14ae 118d 0000 5050 827d 0800 0000  P.......PP.}....
	0x0030:  ffff af82 3d7d 1300                      ....=}..
10:50:28.519395 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 547:581, ack 351, win 29200, length 34
	0x0000:  4500 004a fc70 4000 4006 ba00 c0a8 0125  E..J.p@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cc8e 0000 7342  .....2..=q....sB
	0x0020:  5018 7210 a208 0000 5050 827d 1a00 0000  P.r.....PP.}....
	0x0030:  ffff 4b1f 3d7d 1400 436f 6d70 6174 4f6c  ..K.=}..CompatOl
	0x0040:  6446 6972 6d77 6172 6500                 dFirmware.
10:50:28.603867 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 581, win 5260, length 0
	0x0000:  4500 0028 097a 0000 ff06 2e19 c0a8 01c7  E..(.z..........
	0x0010:  c0a8 0125 1112 9c32 0000 7342 3d71 ccb0  ...%...2..sB=q..
	0x0020:  5010 148c ec62 0000 0000 0000 0000       P....b........
10:50:28.651904 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 351:367, ack 581, win 5260, length 16
	0x0000:  4500 0038 097b 0000 ff06 2e08 c0a8 01c7  E..8.{..........
	0x0010:  c0a8 0125 1112 9c32 0000 7342 3d71 ccb0  ...%...2..sB=q..
	0x0020:  5018 148c 117d 0000 5050 827d 0800 0000  P....}..PP.}....
	0x0030:  ffff ae82 3d7d 1400                      ....=}..
10:50:28.652278 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 581:607, ack 367, win 29200, length 26
	0x0000:  4500 0042 fc71 4000 4006 ba07 c0a8 0125  E..B.q@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ccb0 0000 7352  .....2..=q....sR
	0x0020:  5018 7210 a9de 0000 5050 827d 1200 0000  P.r.....PP.}....
	0x0030:  0b00 dae7 3d7d 1500 4950 4164 6472 6573  ....=}..IPAddres
	0x0040:  7300                                     s.
10:50:28.727905 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 607, win 5234, length 0
	0x0000:  4500 0028 097c 0000 ff06 2e17 c0a8 01c7  E..(.|..........
	0x0010:  c0a8 0125 1112 9c32 0000 7352 3d71 ccca  ...%...2..sR=q..
	0x0020:  5010 1472 ec52 0000 0000 0000 0000       P..r.R........
10:50:28.773785 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 367:407, ack 607, win 5234, length 40
	0x0000:  4500 0050 097d 0000 ff06 2dee c0a8 01c7  E..P.}....-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7352 3d71 ccca  ...%...2..sR=q..
	0x0020:  5018 1472 f954 0000 5050 827d 2000 0000  P..r.T..PP.}....
	0x0030:  d007 ad6f 3d7d 1500 4950 4164 6472 6573  ...o=}..IPAddres
	0x0040:  733d 3139 322e 3136 382e 312e 3139 3900  s=192.168.1.199.
10:50:28.775859 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 607:631, ack 407, win 29200, length 24
	0x0000:  4500 0040 fc72 4000 4006 ba08 c0a8 0125  [email protected]@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 ccca 0000 737a  .....2..=q....sz
	0x0020:  5018 7210 ab9e 0000 5050 827d 1000 0000  P.r.....PP.}....
	0x0030:  0b00 125c 3d7d 1600 4e65 744d 6173 6b00  ...\=}..NetMask.
10:50:28.863930 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 631, win 5210, length 0
	0x0000:  4500 0028 097e 0000 ff06 2e15 c0a8 01c7  E..(.~..........
	0x0010:  c0a8 0125 1112 9c32 0000 737a 3d71 cce2  ...%...2..sz=q..
	0x0020:  5010 145a ec2a 0000 0000 0000 0000       P..Z.*........
10:50:28.895890 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 407:445, ack 631, win 5210, length 38
	0x0000:  4500 004e 097f 0000 ff06 2dee c0a8 01c7  E..N......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 737a 3d71 cce2  ...%...2..sz=q..
	0x0020:  5018 145a fb2e 0000 5050 827d 1e00 0000  P..Z....PP.}....
	0x0030:  d007 e6ec 3d7d 1600 4e65 744d 6173 6b3d  ....=}..NetMask=
	0x0040:  3235 352e 3235 352e 3235 352e 3000       255.255.255.0.
10:50:28.896283 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 631:661, ack 445, win 29200, length 30
	0x0000:  4500 0046 fc73 4000 4006 ba01 c0a8 0125  E..F.s@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cce2 0000 73a0  .....2..=q....s.
	0x0020:  5018 7210 a55a 0000 5050 827d 1600 0000  P.r..Z..PP.}....
	0x0030:  0b00 3d61 3d7d 1700 4741 5445 4950 4164  ..=a=}..GATEIPAd
	0x0040:  6472 6573 7300                           dress.
10:50:28.979895 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 661, win 5180, length 0
	0x0000:  4500 0028 0980 0000 ff06 2e13 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 73a0 3d71 cd00  ...%...2..s.=q..
	0x0020:  5010 143c ec04 0000 0000 0000 0000       P..<..........
10:50:29.053809 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 445:489, ack 661, win 5180, length 44
	0x0000:  4500 0054 0981 0000 ff06 2de6 c0a8 01c7  E..T......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 73a0 3d71 cd00  ...%...2..s.=q..
	0x0020:  5018 143c f502 0000 5050 827d 2400 0000  P..<....PP.}$...
	0x0030:  d007 13ed 3d7d 1700 4741 5445 4950 4164  ....=}..GATEIPAd
	0x0040:  6472 6573 733d 3139 322e 3136 382e 312e  dress=192.168.1.
	0x0050:  3235 3400                                254.
10:50:29.055518 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 661:677, ack 489, win 29200, length 16
	0x0000:  4500 0038 fc74 4000 4006 ba0e c0a8 0125  E..8.t@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd00 0000 73cc  .....2..=q....s.
	0x0020:  5018 7210 b31e 0000 5050 827d 0800 0000  P.r.....PP.}....
	0x0030:  c900 e181 3d7d 1800                      ....=}..
10:50:29.103900 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 677, win 5164, length 0
	0x0000:  4500 0028 0982 0000 ff06 2e11 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 73cc 3d71 cd10  ...%...2..s.=q..
	0x0020:  5010 142c ebd8 0000 0000 0000 0000       P..,..........
10:50:29.173817 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 489:509, ack 677, win 5164, length 20
	0x0000:  4500 003c 0983 0000 ff06 2dfc c0a8 01c7  E..<......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 73cc 3d71 cd10  ...%...2..s.=q..
	0x0020:  5018 142c 0cef 0000 5050 827d 0c00 0000  P..,....PP.}....
	0x0030:  d007 4801 3d7d 1800 7354 1f25            ..H.=}..sT.%
10:50:29.174283 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 677:693, ack 509, win 29200, length 16
	0x0000:  4500 0038 fc75 4000 4006 ba0d c0a8 0125  E..8.u@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd10 0000 73e0  .....2..=q....s.
	0x0020:  5018 7210 b2fa 0000 5050 827d 0800 0000  P.r.....PP.}....
	0x0030:  4c04 5d7e 3d7d 1900                      L.]~=}..
10:50:29.227883 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 693, win 5148, length 0
	0x0000:  4500 0028 0984 0000 ff06 2e0f c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 73e0 3d71 cd20  ...%...2..s.=q..
	0x0020:  5010 141c ebc4 0000 0000 0000 0000       P.............
10:50:29.319885 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 509:546, ack 693, win 5148, length 37
	0x0000:  4500 004d 0985 0000 ff06 2de9 c0a8 01c7  E..M......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 73e0 3d71 cd20  ...%...2..s.=q..
	0x0020:  5018 141c fbc9 0000 5050 827d 1d00 0000  P.......PP.}....
	0x0030:  d007 5625 3d7d 1900 5665 7220 362e 3630  ..V%=}..Ver.6.60
	0x0040:  204a 756e 2030 3520 3230 3138 00         .Jun.05.2018.
10:50:29.320321 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 693:719, ack 546, win 29200, length 26
	0x0000:  4500 0042 fc76 4000 4006 ba02 c0a8 0125  E..B.v@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd20 0000 7405  .....2..=q....t.
	0x0020:  5018 7210 a8bb 0000 5050 827d 1200 0000  P.r.....PP.}....
	0x0030:  0b00 61f7 3d7d 1a00 7e50 6c61 7466 6f72  ..a.=}..~Platfor
	0x0040:  6d00                                     m.
10:50:29.353809 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 719, win 5122, length 0
	0x0000:  4500 0028 0986 0000 ff06 2e0d c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 7405 3d71 cd3a  ...%...2..t.=q.:
	0x0020:  5010 1402 eb9f 0000 0000 0000 0000       P.............
10:50:29.428280 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 546:587, ack 719, win 5122, length 41
	0x0000:  4500 0051 0987 0000 ff06 2de3 c0a8 01c7  E..Q......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7405 3d71 cd3a  ...%...2..t.=q.:
	0x0020:  5018 1402 f7a0 0000 5050 827d 2100 0000  P.......PP.}!...
	0x0030:  d007 afc4 3d7d 1a00 7e50 6c61 7466 6f72  ....=}..~Platfor
	0x0040:  6d3d 414b 3337 3530 5749 4649 5f54 4654  m=AK3750WIFI_TFT
	0x0050:  00                                       .
10:50:29.428715 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 719:747, ack 587, win 29200, length 28
	0x0000:  4500 0044 fc77 4000 4006 b9ff c0a8 0125  E..D.w@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd3a 0000 742e  .....2..=q.:..t.
	0x0020:  5018 7210 a676 0000 5050 827d 1400 0000  P.r..v..PP.}....
	0x0030:  0b00 23a8 3d7d 1b00 7e44 6576 6963 654e  ..#.=}..~DeviceN
	0x0040:  616d 6500                                ame.
10:50:29.478793 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 747, win 5094, length 0
	0x0000:  4500 0028 0988 0000 ff06 2e0b c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 742e 3d71 cd56  ...%...2..t.=q.V
	0x0020:  5010 13e6 eb76 0000 0000 0000 0000       P....v........
10:50:29.553781 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 587:618, ack 747, win 5094, length 31
	0x0000:  4500 0047 0989 0000 ff06 2deb c0a8 01c7  E..G......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 742e 3d71 cd56  ...%...2..t.=q.V
	0x0020:  5018 13e6 0182 0000 5050 827d 1700 0000  P.......PP.}....
	0x0030:  d007 1a31 3d7d 1b00 7e44 6576 6963 654e  ...1=}..~DeviceN
	0x0040:  616d 653d 4432 00                        ame=D2.
10:50:29.554258 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 747:765, ack 618, win 29200, length 18
	0x0000:  4500 003a fc78 4000 4006 ba08 c0a8 0125  E..:.x@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd56 0000 744d  .....2..=q.V..tM
	0x0020:  5018 7210 b045 0000 5050 827d 0a00 0000  P.r..E..PP.}....
	0x0030:  4500 4132 3d7d 1c00 2050                 E.A2=}...P
10:50:29.603859 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 765, win 5076, length 0
	0x0000:  4500 0028 098a 0000 ff06 2e09 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 744d 3d71 cd68  ...%...2..tM=q.h
	0x0020:  5010 13d4 eb57 0000 0000 0000 0000       P....W........
10:50:29.653826 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 618:635, ack 765, win 5076, length 17
	0x0000:  4500 0039 098b 0000 ff06 2df7 c0a8 01c7  E..9......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 744d 3d71 cd68  ...%...2..tM=q.h
	0x0020:  5018 13d4 0f71 0000 5050 827d 0900 0000  P....q..PP.}....
	0x0030:  d007 cd7a 3d7d 1c00 09                   ...z=}...
10:50:29.654308 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 765:795, ack 635, win 29200, length 30
	0x0000:  4500 0046 fc79 4000 4006 b9fb c0a8 0125  E..F.y@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd68 0000 745e  .....2..=q.h..t^
	0x0020:  5018 7210 a416 0000 5050 827d 1600 0000  P.r.....PP.}....
	0x0030:  0b00 9739 3d7d 1d00 7e53 6572 6961 6c4e  ...9=}..~SerialN
	0x0040:  756d 6265 7200                           umber.
10:50:29.727887 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 795, win 5046, length 0
	0x0000:  4500 0028 098c 0000 ff06 2e07 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 745e 3d71 cd86  ...%...2..t^=q..
	0x0020:  5010 13b6 eb46 0000 0000 0000 0000       P....F........
10:50:29.793827 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 635:679, ack 795, win 5046, length 44
	0x0000:  4500 0054 098d 0000 ff06 2dda c0a8 01c7  E..T......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 745e 3d71 cd86  ...%...2..t^=q..
	0x0020:  5018 13b6 f444 0000 5050 827d 2400 0000  P....D..PP.}$...
	0x0030:  d007 3582 3d7d 1d00 7e53 6572 6961 6c4e  ..5.=}..~SerialN
	0x0040:  756d 6265 723d 4157 5848 3138 3531 3630  umber=AWXH185160
	0x0050:  3039 3600                                096.
10:50:29.794277 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 795:815, ack 679, win 29200, length 20
	0x0000:  4500 003c fc7a 4000 4006 ba04 c0a8 0125  E..<.z@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd86 0000 748a  .....2..=q....t.
	0x0020:  5018 7210 add6 0000 5050 827d 0c00 0000  P.r.....PP.}....
	0x0030:  0b00 0941 3d7d 1e00 4d41 4300            ...A=}..MAC.
10:50:29.851922 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 815, win 5026, length 0
	0x0000:  4500 0028 098e 0000 ff06 2e05 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 748a 3d71 cd9a  ...%...2..t.=q..
	0x0020:  5010 13a2 eb1a 0000 0000 0000 0000       P.............
10:50:29.913825 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 679:717, ack 815, win 5026, length 38
	0x0000:  4500 004e 098f 0000 ff06 2dde c0a8 01c7  E..N......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 748a 3d71 cd9a  ...%...2..t.=q..
	0x0020:  5018 13a2 fa1e 0000 5050 827d 1e00 0000  P.......PP.}....
	0x0030:  d007 5d2b 3d7d 1e00 4d41 433d 3030 3a31  ..]+=}..MAC=00:1
	0x0040:  373a 3631 3a42 303a 3443 3a44 3600       7:61:B0:4C:D6.
10:50:29.914273 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 815:831, ack 717, win 29200, length 16
	0x0000:  4500 0038 fc7b 4000 4006 ba07 c0a8 0125  E..8.{@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cd9a 0000 74b0  .....2..=q....t.
	0x0020:  5018 7210 b1a0 0000 5050 827d 0800 0000  P.r.....PP.}....
	0x0030:  3200 7182 3d7d 1f00                      2.q.=}..
10:50:29.978825 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 831, win 5010, length 0
	0x0000:  4500 0028 0990 0000 ff06 2e03 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 74b0 3d71 cdaa  ...%...2..t.=q..
	0x0020:  5010 1392 eaf4 0000 0000 0000 0000       P.............
10:50:30.033782 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 717:737, ack 831, win 5010, length 20
	0x0000:  4500 003c 0991 0000 ff06 2dee c0a8 01c7  E..<......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 74b0 3d71 cdaa  ...%...2..t.=q..
	0x0020:  5018 1392 0c0b 0000 5050 827d 0c00 0000  P.......PP.}....
	0x0030:  d007 d37a 3d7d 1f00 0000 0000            ...z=}......
10:50:30.035927 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 831:847, ack 737, win 29200, length 16
	0x0000:  4500 0038 fc7c 4000 4006 ba06 c0a8 0125  E..8.|@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdaa 0000 74c4  .....2..=q....t.
	0x0020:  5018 7210 b17c 0000 5050 827d 0800 0000  P.r..|..PP.}....
	0x0030:  3200 7082 3d7d 2000                      2.p.=}..
10:50:30.103866 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 847, win 4994, length 0
	0x0000:  4500 0028 0992 0000 ff06 2e01 c0a8 01c7  E..(............
	0x0010:  c0a8 0125 1112 9c32 0000 74c4 3d71 cdba  ...%...2..t.=q..
	0x0020:  5010 1382 eae0 0000 0000 0000 0000       P.............
10:50:30.147917 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 737:757, ack 847, win 4994, length 20
	0x0000:  4500 003c 0993 0000 ff06 2dec c0a8 01c7  E..<......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 74c4 3d71 cdba  ...%...2..t.=q..
	0x0020:  5018 1382 0bf7 0000 5050 827d 0c00 0000  P.......PP.}....
	0x0030:  d007 d27a 3d7d 2000 0000 0000            ...z=}......
10:50:30.148414 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 847:863, ack 757, win 29200, length 16
	0x0000:  4500 0038 fc7d 4000 4006 ba05 c0a8 0125  E..8.}@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdba 0000 74d8  .....2..=q....t.
	0x0020:  5018 7210 b158 0000 5050 827d 0800 0000  P.r..X..PP.}....
	0x0030:  3200 6f82 3d7d 2100                      2.o.=}!.
10:50:30.227858 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 863, win 4978, length 0
	0x0000:  4500 0028 0994 0000 ff06 2dff c0a8 01c7  E..(......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 74d8 3d71 cdca  ...%...2..t.=q..
	0x0020:  5010 1372 eacc 0000 0000 0000 0000       P..r..........
10:50:30.287868 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 757:777, ack 863, win 4978, length 20
	0x0000:  4500 003c 0995 0000 ff06 2dea c0a8 01c7  E..<......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 74d8 3d71 cdca  ...%...2..t.=q..
	0x0020:  5018 1372 0be3 0000 5050 827d 0c00 0000  P..r....PP.}....
	0x0030:  d007 d17a 3d7d 2100 0000 0000            ...z=}!.....
10:50:30.288281 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 863:879, ack 777, win 29200, length 16
	0x0000:  4500 0038 fc7e 4000 4006 ba04 c0a8 0125  E..8.~@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdca 0000 74ec  .....2..=q....t.
	0x0020:  5018 7210 b134 0000 5050 827d 0800 0000  P.r..4..PP.}....
	0x0030:  3200 6e82 3d7d 2200                      2.n.=}".
10:50:30.351938 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 879, win 4962, length 0
	0x0000:  4500 0028 0996 0000 ff06 2dfd c0a8 01c7  E..(......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 74ec 3d71 cdda  ...%...2..t.=q..
	0x0020:  5010 1362 eab8 0000 0000 0000 0000       P..b..........
10:50:30.413780 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 777:797, ack 879, win 4962, length 20
	0x0000:  4500 003c 0997 0000 ff06 2de8 c0a8 01c7  E..<......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 74ec 3d71 cdda  ...%...2..t.=q..
	0x0020:  5018 1362 0bcf 0000 5050 827d 0c00 0000  P..b....PP.}....
	0x0030:  d007 d07a 3d7d 2200 0000 0000            ...z=}".....
10:50:30.413983 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 879:895, ack 797, win 29200, length 16
	0x0000:  4500 0038 fc7f 4000 4006 ba03 c0a8 0125  E..8..@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdda 0000 7500  .....2..=q....u.
	0x0020:  5018 7210 b110 0000 5050 827d 0800 0000  P.r.....PP.}....
	0x0030:  ea03 b57e 3d7d 2300                      ...~=}#.
10:50:30.478838 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 895, win 4946, length 0
	0x0000:  4500 0028 0998 0000 ff06 2dfb c0a8 01c7  E..(......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7500 3d71 cdea  ...%...2..u.=q..
	0x0020:  5010 1352 eaa4 0000 0000 0000 0000       P..R..........
10:50:30.572033 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 797:813, ack 895, win 4946, length 16
	0x0000:  4500 0038 0999 0000 ff06 2dea c0a8 01c7  E..8......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7500 3d71 cdea  ...%...2..u.=q..
	0x0020:  5018 1352 0fbf 0000 5050 827d 0800 0000  P..R....PP.}....
	0x0030:  d007 cf7a 3d7d 2300                      ...z=}#.
10:50:30.572146 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [P.], seq 895:911, ack 813, win 29200, length 16
	0x0000:  4500 0038 fc80 4000 4006 ba02 c0a8 0125  E..8..@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdea 0000 7510  .....2..=q....u.
	0x0020:  5018 7210 b0f0 0000 5050 827d 0800 0000  P.r.....PP.}....
	0x0030:  e903 b57e 3d7d 2400                      ...~=}$.
10:50:30.603845 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [.], ack 911, win 4930, length 0
	0x0000:  4500 0028 099a 0000 ff06 2df9 c0a8 01c7  E..(......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7510 3d71 cdfa  ...%...2..u.=q..
	0x0020:  5010 1342 ea94 0000 0000 0000 0000       P..B..........
10:50:30.683855 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [P.], seq 813:829, ack 911, win 4930, length 16
	0x0000:  4500 0038 099b 0000 ff06 2de8 c0a8 01c7  E..8......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7510 3d71 cdfa  ...%...2..u.=q..
	0x0020:  5018 1342 0faf 0000 5050 827d 0800 0000  P..B....PP.}....
	0x0030:  d007 ce7a 3d7d 2400                      ...z=}$.
10:50:30.683976 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [F.], seq 911, ack 829, win 29200, length 0
	0x0000:  4500 0028 fc81 4000 4006 ba11 c0a8 0125  E..(..@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdfa 0000 7520  .....2..=q....u.
	0x0020:  5011 7210 8bb5 0000                      P.r.....
10:50:30.687884 IP 192.168.1.199.4370 > 192.168.1.37.39986: Flags [F.], seq 829, ack 912, win 4929, length 0
	0x0000:  4500 0028 099c 0000 ff06 2df7 c0a8 01c7  E..(......-.....
	0x0010:  c0a8 0125 1112 9c32 0000 7520 3d71 cdfb  ...%...2..u.=q..
	0x0020:  5011 1341 ea83 0000 0000 0000 0000       P..A..........
10:50:30.687921 IP 192.168.1.37.39986 > 192.168.1.199.4370: Flags [.], ack 830, win 29200, length 0
	0x0000:  4500 0028 fc82 4000 4006 ba10 c0a8 0125  E..(..@.@......%
	0x0010:  c0a8 01c7 9c32 1112 3d71 cdfb 0000 7521  .....2..=q....u!
	0x0020:  5010 7210 8bb4 0000                      P.r.....

System (please complete the following information):

  • OS: Linux
  • Python version 2.7.13

when fingerprint device restated real time listener does not give any errors but it stops receiving fingerprint events

used your library to get real time fingerprints notifications from my
ZKteco fp machine. But I have a problem when fingerprint device restated my python real time listener does not give any errors but it stops receiving fingerprint events.It is a great help for me if you can assist me to overcome this problem.I am expecting your kind opinion.I am using the same code in your library live_capture.py example file (https://github.com/fananimi/pyzk/blob/master/example/live_capture.py)

get_pin_width() index out of range

Describe the bug
python3 ./test_machine.py -a [myIP]

return data;

Connecting to device ...
SDK build=1 : True
Disabling device ...
ExtendFmt : 1
UsrExtFmt : 1
Face FunOn : 0
Face Version : 7
Finger Version : 10
Old Firm compat : 0
IP:192.168.2.199 mask:255.255.255.0 gateway:192.168.2.1
Time : 2019-09-19 18:31:07
Firmware Version : Ver 6.60 Dec 23 2013
Platform : ZMM100_TFT
DeviceName : iClock580/ID
Process terminate : bytearray index out of range
Error: <class 'IndexError'>

Traceback (most recent call last):
File "./test_machine.py", line 93, in
print ('Pin Width : %i' % conn.get_pin_width())
File "/usr/pyzk-master/zk/base.py", line 635, in get_pin_width
return bytearray(width)[0]
IndexError: bytearray index out of range

Enabling device ...
ok bye!

zk.exception.ZKNetworkError: [WinError 10054] An existing connection was forcibly closed by the remote host

I am trying this on Windows Server 2016 with python 3.6 and pyzk 0.9.

I dont think this exception is related to pyzk, but i have been getting it when i try to integrate with ZKTeco K14.
The API works sometimes (yes i can use all the methods perfectly) but when it doesn't, It throws this error. I have tried pyzk with K40 ( on Windows / Linux ) and it works perfectly.

Anyone experiencing this ? Please point me to right direction on what could i do to fix it.

``

from zk import ZK,const
zk = ZK('192.168.5.200', port=4370, timeout=5, password=0, force_udp=False, ommit_ping=False)
zk.connect()
Traceback (most recent call last):
File "C:\Program Files (x86)\Odoo 11.0 - Copy\python\lib\site-packages\zk\base.py", line 248, in __send_command self.__sock.send(top)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "C:\Program Files (x86)\Odoo 11.0 - Copy\python\lib\site-packages\zk\base.py", line 373, in connect
cmd_response = self.__send_command(const.CMD_CONNECT)
File "C:\Program Files (x86)\Odoo 11.0 - Copy\python\lib\site-packages\zk\base.py", line 260, in __send_command
raise ZKNetworkError(str(e))
zk.exception.ZKNetworkError: [WinError 10054] An existing connection was forcibly closed by the remote host ``

[Errno 32] Broken pipe

Hello,

When it tries to connect to device, ZKNetworkError occurs.
pyzk 0.6 is working fine on Python 2.7 and Ubuntu 16.04.
Even though I could not install pyzk 0.6 on python 3.6.7 and Ubuntu 18.04, pyzk 0.9 was successfully installed.
However it gives the network error (errno 32 broken pipe) on Python 3.6 and Ubuntu 18.04 when it tries to connect to device.

pyzk error

Not able to establish connection to a iClock 3800 machine

Describe the bug
I am running the test_machine.py to connect to a zkteco iclock3800 machine
python3 ./test_machine.py -a <IP Address> -p 4370 -T 80 -b -v

and it fails during the initial recv command with a timeout error. This model is not in your tested versions , so this could be considered an enhancement.

To Reproduce
Execute the command on this model of machine

Expected behavior
Provide the basic data from the device

Capture Data
I've not done that - but can do it if it is required .

System (please complete the following information):

  • OS: [e.g. iOS, Debian 9] : Ubuntu 18.04 server
  • Python version [e.g. 2.7, 3.5]] - 3.6.7

Advice on connecting biometric machine with pyzk

Hello: Fanani M. Ihsan:

I am writing you to ask for advice on connecting to a biometric attendance machine via TCP/IP using the pyzk library.

The biometric machine model is "uFace402" and is made by ZKTeco (ZKsoftware).
The firmware version is: 8.0.3.3-20161012

The computer used to connect has O.S. Ubuntu Linux 12.04, kernel 3.2.0-126-generic #169-Ubuntu i686.
Python version is 2.7.3 (default, Oct 26 2016, 21:04:23) [GCC 4.6.3]
The Library Pyzk is installed using the pip command, and the version is 0.5.

I used commands in "http://pyzk.readthedocs.io/en/latest/" to connect to the biometric machine.
Here are the output of the commands in the python console:

Python 2.7.3 (default, Oct 26 2016, 21:04:23)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

from zk import ZK, const
conn = None
zk = ZK('192.168.1.201', port=4370, timeout=5)
conn = zk.connect()
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/zk/base.py", line 155, in connect
raise ZKErrorResponse("Invalid response")
zk.exception.ZKErrorResponse: Invalid response
--

The output ends with the message "Invalid response" and the connection cannot be established.
I would appreciate your help, what you suggest I could try to connect?

Many thanks,

Martín da Cruz

University of the Republic
Uruguay

Attendance timestamp :help wanted:

Hello.
I get time from device:

zktime = conn.get_time()
print zktime
> 2019-09-30 11:32:54

It's ok.
But when I take attendances:
I recived:
[<Attendance>: 5 : 2110-08-21 16:27:44 (8, 37), <Attendance>: 5 : 2110-08-21 19:14:08 (8, 37), <Attendance>: 5 : 2110-08-22 04:37:20 (8, 37), <Attendance>: 5 : 2110-08-22 09:57:20 (8, 37), <Attendance>: 5 : 2110-08-24 23:02:24 (8, 37), <Attendance>: 5 : 2110-08-25 05:52:00 (8, 37), <Attendance>: 5 : 2110-08-25 16:23:28 (8, 37)]
Q: How can I convert this timestamp from output to human-readable format ?
Q Can you explain where can I look for meaning of other values "(8, 35)" ?

upload sms template

how can I use CMD_SMS_WRQ command?

       import datetime as dt
       now = dt.datetime(2019, 6, 17, 20, 00, 00)

        tag = 253
        valid_minutes = 10
        reserved = 0
        start_time = self.__encode_time(now)
        id = 0
        content = b"hello"
        

        command = const.CMD_SMS_WRQ
        command_string = pack('BHHHI60s', tag, id, valid_minutes, reserved, start_time, content)
        cmd_response = self.__send_command(command, command_string)

        if cmd_response.get('status'):
            return True
        else:
            return False

return {'status': False, 'code': 2001}

WL20 support?

I get no response when I try to use this with a WL20 which appears to have a password option in the PC network settings. I've yet to try the official software from Zkteko but I can ping the device on the WiFi network.

Attenadance log data on daily basis

I am getting the data by using get_attendance method as whole data in string,instead of whole data as i want to get the user check-in and check-out time in attendance log on daily basis.Please help me with solution.

limitation in user uid

The maximum number of uid from the library is 9999.
If a larger number is used, the following line fails

uid = chr(uid % 256) + chr(uid >> 8)

The terminal accepts 9 characters in the user id (999999999)

Can't enroll user

Set_user method works fine and create user in device database.

But enroll_user function always rerurns false. Why it is happening

communication key

i have a communication key in pc connection setting on the device that prevent connection. where can i insert it into the code ?? :)

timed out

Hello,
I have a problem when i use test_machine.py, i get this error (timed out)
the device is connected on network and the ping work perfectly
ZKaccess 3.5 it work perfectly

this is my console:

MacBook-Air-de-power:pyzk tech$ ping 192.168.100.211
PING 192.168.100.211 (192.168.100.211): 56 data bytes
64 bytes from 192.168.100.211: icmp_seq=0 ttl=64 time=119.982 ms
64 bytes from 192.168.100.211: icmp_seq=1 ttl=64 time=33.312 ms
64 bytes from 192.168.100.211: icmp_seq=2 ttl=64 time=2.631 ms
64 bytes from 192.168.100.211: icmp_seq=3 ttl=64 time=2.744 ms
64 bytes from 192.168.100.211: icmp_seq=4 ttl=64 time=2.531 ms
^C
--- 192.168.100.211 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.531/32.240/119.982/45.451 ms
MacBook-Air-de-power:pyzk tech$ sudo python test_machine.py -a 192.168.100.211 -P 123
Password:

Connecting to device ...
Process terminate : timed out
Error: <class 'zk.exception.ZKNetworkError'>

Traceback (most recent call last):
File "test_machine.py", line 67, in
conn = zk.connect()
File "/Users/tech/Desktop/pyzk/zk/base.py", line 373, in connect
cmd_response = self.__send_command(const.CMD_CONNECT)
File "/Users/tech/Desktop/pyzk/zk/base.py", line 260, in __send_command
raise ZKNetworkError(str(e))
ZKNetworkError: timed out
——————————————————————————————

thanks

can't set user with big card number

Describe the bug
I try set user with '3129934859' card number but I can't set user

To Reproduce
Steps to reproduce the behavior:

  1. initial data: uid=1, name='name', card=3129934859
  2. execute command set_user
  3. See error:
File "drivers/pyzk/zk/base.py", line 892, in set_user
card_str = pack('i', int(card))[:4]
struct.error: 'i' format requires -2147483648 <= number <= 2147483647

System (please complete the following information):

  • OS: ubuntu 16.04
  • Python version 3.6

Additional context
I can set user by modifying this line:

card_str = pack('<I', int(card))[:4]

Time out if the machine has more than one week data

the driver is working very fine with most of zk machines however it cant connect if the machine with some old data more than week
and it is not logical to clear my ZK every week to stop that from happening

is there is any way to extend the time of connection to prevent that from happening ???

Is it possible add upload/download photo function?

Is it possible add upload/download photo function?
Some models can upload ID Photos, thank you!

my three devices all compatible :

Firmware Version : Ver 6.60 May 25 2018
Platform : JZ4725_TFT
DeviceName : Bionet RT

Firmware Version : Ver 6.60 Jun 9 2017
Platform : JZ4725_TFT
DeviceName : CLK-950

Firmware Version : Ver 6.60 Apr 27 2017
Platform : ZLM60_TFT
DeviceName : Bionet RT Plus B
This one have ID Photo function

JavaScript

could you indicate a communication using JavaScript through the browser?

Tanks

connecting to other devices

I'm trying to connect with a device (model K14) When I print conn, its value is False, even I am sure that the connection parameters are well!!!
But when I tried to connect with another device (model F18) it connected. What can I do to connect to all the devices? Is there a parameter that I should modify ?

Set Card Number for a user

Hello,
Thanks for this wonderful works,
I have an issue, I didn't find in this api how I can add the card number for a user. Below the method that allows to add a user in the device, how can I add the card number for a user?
set_user(uid=1, name='Fanani M. Ihsan', privilege=const.USER_ADMIN, password='12345678', group_id='', user_id='123')
Thanks

I was unable to get the badge_id ,in time and out time from my biometric device

Hi Every One,
I am using pyzk to connect with my biometric device but i was unable to get the check in and check out time from the users could any one help me in this issue.

**from zk import ZK, const

conn = None

create ZK instance

zk = ZK('192.168.110.34', port=4370, timeout=5)
try:

conn = zk.connect()

conn.disable_device()

users = conn.get_users()
print("Users:",users)
for user in users:
    privilege = 'User'
    if user.privilege == const.USER_ADMIN:
        privilege = 'Admin'
    print ('+ UID #{}'.format(user.uid))
    print ('  Name       : {}'.format(user.name))
    print ('  Privilege  : {}'.format(privilege))
    print ('  Password   : {}'.format(user.password))
    print ('  Group ID   : {}'.format(user.group_id))
    print ('  User  ID   : {}'.format(user.user_id))	
    # print ('  In Time    : {}'.format(user.intime))
    # print ('  Out Time    : {}'.format(user.outtime))



conn.test_voice()

conn.enable_device()

except Exception as e:
print ("Process terminate : {}".format(e))
finally:
if conn:
conn.disconnect()**
The above is my code to connect to my device and output i am getting is
**+ UID #536
Name : Vivekm
Privilege : User
Password :
Group ID :
User ID : LM010

  • UID #537
    Name : Harishk
    Privilege : User
    Password :
    Group ID :
    User ID : LM009
  • UID #538
    Name : Balajik
    Privilege : User
    Password :
    Group ID :
    User ID : LM065
    **

I need in time and out time and badge_id(either finger print or card )

Thanks in Advance,
Happy codding...

get_attendance gives invalid responce

from zk import ZK, const

conn = None
zk = ZK('192.168.0.255', port=4370,timeout=5)
try:
print 'Connecting to device ...'
conn = zk.connect()
#conn.get_attendance()
print 'Disabling device ...'
conn.disable_device()
attendances = conn.get_attendance()
print "Attendances ",attendances
print 'Firmware Version: : {}'.format(conn.get_firmware_version())
# print '--- Get User ---'
users = conn.get_users()
for user in users:
privilege = 'User'
if user.privilege == const.USER_ADMIN:
privilege = 'Admin'

    print '- UID #{}'.format(user.uid)
    print '  Name       : {}'.format(user.name)
    print '  Privilege  : {}'.format(privilege)
    print '  Password   : {}'.format(user.password)
    print '  Group ID   : {}'.format(user.group_id)
    print '  User  ID   : {}'.format(user.user_id)

print "Voice Test ..."
conn.test_voice()
print 'Enabling device ...'
conn.enable_device()

except Exception, e:
print e
print "Process terminate : {}".format(e)
finally:
if conn:
conn.disconnect()

i get Connection timeout while try to connect

i get this output when i try to connect to my zkteco fingerprint

Connecting to device ...
Process terminate : timed out

zkteco version : zk-k14
firmware version : 4.0.1

things i checked and still getting false connection :-
-the fingerprint device is accessible throw this ip : 192.168.1.201 AND port : 4370.
-i make sure that the device is accessible without any pin code or passwords.

when i try to connect to the device using the official SDK it connect successfully so using wireshark i compared the packet sent from the official sdk with the one using this library and i noticed.
-the packet sent using this library is an empty UDP packet.
-the one sent from the official sdk is a TCP packet with this content

PP.}............PP.}.......vw...PP.}....L.;zw...PP.}......3#w...Ver 6.60 Jun 16 2015.PP.}........w...~OS.PP.}........w...~OS=1.PP.}......L.w...~ExtendFmt.PP.}......Jcw...~ExtendFmt=0.PP.}......N|w...ExtendOPLog.PP.}.......vw...PP.}.......tw...ExtendOPLog.PP.}.......~w...PP.}......W|w...ExtendOPLog.PP.}.......~w...PP.}......V|w...ExtendOPLog.PP.}.......~w...PP.}......U|w...ExtendOPLog.PP.}.......~w...PP.}......8.w.	.~Platform.PP.}.......?w.	.~Platform=JZ4725_TFT.PP.}.......=w.
.~ZKFPVersion.PP.}........w.
.~ZKFPVersion=10.PP.}
...E.`Uw....(PP.}	......vw...	PP.}........w...WorkCode.PP.}........w...WorkCode=1.PP.}
.......w.
.~SSR.PP.}........w.
.~SSR=1.PP.}........w...~PIN2Width.PP.}.......zw...~PIN2Width=9.PP.}........w...FaceFunOn.PP.}.......vw...PP.}........w...~UserExtFmt.PP.}.......Vw...~UserExtFmt=0.PP.}....L.+zw...PP.}......##w...Ver 6.60 Jun 16 2015.PP.}......	=w...~ZKFPVersion.PP.}........w...~ZKFPVersion=10.PP.}........w...~IsOnlyRFMachine.PP.}.......ow...~IsOnlyRFMachine=0.PP.}........w...~OS.PP.}........w...~OS=1.PP.}.......|w.......PP.}.......vw...PP.}......[yw...,...PP.}.......vw...PP.}....2.?~w...PP.}X.......w...........................&.......................................P...............PP.}....2.>~w...PP.}X.......w...........................&.......................................P...............PP.}....2.=~w...PP.}X.......w...........................&.......................................P...............PP.}....2.<~w...PP.}X.......w...........................&.......................................P...............PP.}....2.;~w...PP.}X.......w...........................&.......................................P...............PP.}........w...~UserExtFmt.PP.}.......Vw...~UserExtFmt=0.PP.}.......zw...PP.}.......vw...PP.}......\5w...~SerialNumber.PP.}*.....m.w...~SerialNumber=OEG6060486051400346.PP.}........w...~DeviceName.PP.}.......-w...~DeviceName=K14.

Can't connect

Hello. I have ma300 devices. I use example from readme:


conn = None
zk = ZK('10.222.222.131', port=4370, timeout=10, password=0, force_udp=False, ommit_ping=False)
try:
 ...
except Exception as e:
    print ("Process terminate : {}".format(e))
finally:
    if conn:
        conn.disconnect()

and always see:
Process terminate : timed out
I can ping device. I can get access them with ZKAccess 3.5. No password on device.
Device has: Firmware version number:Ver 6.62 Dec 7 2015
What can be wrong ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.