Сокет 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-го байта, и где я могу найти, что это значит?

0 ответов

Другие вопросы по тегам