progpib/sampledata.txt

99 lines
5.2 KiB
Plaintext
Raw Normal View History

2021-04-14 02:33:01 -05:00
nfutil.Discover(s, r) result:
{b'\x00!i\x01-\xaf': {'magic': 90, 'id': 1, 'sequence': 27564, 'eth_addr': b'\x00!i\x01-\xaf', 'uptime_days': 37, 'uptime_hrs': 5, 'uptime_min': 19, 'uptime_secs': 5, 'mode': 1, 'alert': 0, 'ip_type': 0, 'ip_addr': b'\xc0\xa8\x00\xe5', 'ip_netmask': b'\xff\xff\xff\x00', 'ip_gw': b'\xc0\xa8\x00\x01', 'app_ver': b'\x01\x06\x06\x00', 'boot_ver': b'\x01\x03\x00\x00', 'hw_ver': b'\x01\x03\x00\x00', 'name': b'600\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'}}
-- Dict with single item
2021-04-16 20:21:54 -05:00
2021-04-14 02:33:01 -05:00
>>> device = d[list(d)[0]]
>>> device
{'magic': 90, 'id': 1, 'sequence': 27564, 'eth_addr': b'\x00!i\x01-\xaf', 'uptime_days': 37, 'uptime_hrs': 5, 'uptime_min': 19, 'uptime_secs': 5, 'mode': 1, 'alert': 0, 'ip_type': 0, 'ip_addr': b'\xc0\xa8\x00\xe5', 'ip_netmask': b'\xff\xff\xff\x00', 'ip_gw': b'\xc0\xa8\x00\x01', 'app_ver': b'\x01\x06\x06\x00', 'boot_ver': b'\x01\x03\x00\x00', 'hw_ver': b'\x01\x03\x00\x00', 'name': b'600\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'}
>>> socket.inet_ntoa(device['hw_ver'])
'1.3.0.0'
>>> socket.inet_ntoa(device['boot_ver'])
'1.3.0.0'
>>> socket.inet_ntoa(device['app_ver'])
'1.6.6.0'
>>> device['uptime_days']
37
>>> device['uptime_hrs']
5
>>> device['uptime_min']
19
>>> device['uptime_secs']
5
>>> socket.inet_ntoa(device['name'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: packed IP wrong length for inet_ntoa
>>> socket.inet_ntoa(device['ip_addr'])
'192.168.0.229'
>>> seq
30327
>>> nfutil.MkSetEthernetAddress(seq, device['eth_addr'], b'\xfa\xfa\xfa\xfa\xfa\xfa')
b'Z\rvw\x00!i\x01-\xaf\x00\x00\xfa\xfa\xfa\xfa\xfa\xfa\x00\x00'
>>> msg = nfutil.MkVerify(seq, device['eth_addr'])
>>> msg
b'Z\nvw\x00!i\x01-\xaf\x00\x00'
>>> msg = nfutil.MkIdentify(seq)
>>> msg
b'Z\x00vw\xff\xff\xff\xff\xff\xff\x00\x00'
>>> nfutil.SendMsg(s, msg)
True
>>> reply = nfutil.RecvMsg(r)
>>> reply
b'Z\x01vw\x00!i\x01-\xaf\x00\x00\x00%\x0572\x01\x00\x00\xc0\xa8\x00\xe5\xff\xff\xff\x00\xc0\xa8\x00\x01\x01\x06\x06\x00\x01\x03\x00\x00\x01\x03\x00\x00600\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> nfutil.UnMkIdentifyReply(reply)
{'magic': 90, 'id': 1, 'sequence': 30327, 'eth_addr': b'\x00!i\x01-\xaf', 'uptime_days': 37, 'uptime_hrs': 5, 'uptime_min': 55, 'uptime_secs': 50, 'mode': 1, 'alert': 0, 'ip_type': 0, 'ip_addr': b'\xc0\xa8\x00\xe5', 'ip_netmask': b'\xff\xff\xff\x00', 'ip_gw': b'\xc0\xa8\x00\x01', 'app_ver': b'\x01\x06\x06\x00', 'boot_ver': b'\x01\x03\x00\x00', 'hw_ver': b'\x01\x03\x00\x00', 'name': b'600\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'}
>>> msg = nfutil.MkTest(seq, device['eth_addr'])
>>> msg
b'Z\x0fvw\x00!i\x01-\xaf\x00\x00'
>>> nfutil.SendMsg(s, b'Z\x0fvw\x00!i\x01-\xaf\x00\x00')
True
>>> reply = nfutil.RecvMsg(r)
>>> reply
b'Z\x03vw\x00!i\x01-\xaf\x00\x00\x00\x00\x00\x00'
>>> msg = nfutil.MkAssignment(seq, device['eth_addr'], device['ip_type'], '192.168.0.123', '255.255.255.0', '192.168.0.1')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/wolfpack/Downloads/progpib/vendortools/nfutil.py", line 213, in MkAssignment
socket.inet_aton(gateway)
struct.error: char format requires a bytes object of length 1
>>> msg = nfutil.MkHeader(nfutil.NF_ASSIGNMENT, seq, device['eth_addr'])
>>> msg
b'Z\x02vw\x00!i\x01-\xaf\x00\x00'
>>> import struct
>>> struct.pack(nfutil.ASSIGNMENT_FMT, b'\x00', device['ip_addr'], device['ip_netmask'], device['ip_gw'])
b'\x00\x00\x00\x00\xc0\xa8\x00\xe5\xff\xff\xff\x00\xc0\xa8\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> msg = nfutil.MkHeader(nfutil.NF_ASSIGNMENT, seq, device['eth_addr']) + struct.pack(nfutil.ASSIGNMENT_FMT, b'\x00', device['ip_addr'], device['ip_netmask'], device['ip_gw'])
>>> msg
b'Z\x02vw\x00!i\x01-\xaf\x00\x00\x00\x00\x00\x00\xc0\xa8\x00\xe5\xff\xff\xff\x00\xc0\xa8\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
>>> s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
>>> s.bind(('192.168.0.245', 0))
>>> port = s.getsockname()[1]
>>>
>>> r = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
>>> r.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
>>>
>>> r.setblocking(1)
>>> r.settimeout(0.100)
>>> r.bind(('', port))
>>>
>>> msg = nfutil.MkHeader(nfutil.NF_ASSIGNMENT, seq, device['eth_addr']) + struct.pack(nfutil.ASSIGNMENT_FMT, b'\x00', device['ip_addr'], device['ip_netmask'], device['ip_gw'])
>>> msg
b'Z\x02vw\x00!i\x01-\xaf\x00\x00\x00\x00\x00\x00\xc0\xa8\x00\xe5\xff\xff\xff\x00\xc0\xa8\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> nfutil.SendMsg(s, msg)
True
>>> reply = nfutil.RecvMsg(r)
>>> reply
b'Z\x03vw\x00!i\x01-\xaf\x00\x00\x00\x00\x00\x00'