Сокет python, значение возвращаемого значения fcntl.ioctl
Есть кое-что, что я не понимаю для вывода этого:
sock = socket.socket(socket.AF_INET)
subnet = fcntl.ioctl(sock, 0x891b, struct.pack('256s', 'ens33'))
print binascii.hexlify(subnet)
Выход:
656e733333000000000000000000000002000000ffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
656e733333 - это мой интерфейс (ens33), а ffffff00 - маска сети.
Я вижу много нулей. Так что я думаю о struct.pack('256s', 'ens33')
в качестве буфера, где системный вызов ioctl запишет в него значения (в этом случае маску сети).
Но это также пишет "02" (subnet[16:17]
), поэтому мой большой вопрос: что означает "02" в значении 16-го байта, и где я могу найти, что это значит?