Декодирование полей DHCP Giaddr, Yiaddr, Ciaddr, siaddr с помощью dpkt - выпуск python
Всякий раз, когда я пытаюсь загрузить Giaddr (или YIADDR Ciaddr, siaddr) для любого пакета DHCP, он печатает случайную строку чисел. (это происходит для каждого n каждого загружаемого пакета)
Я делаю что-то не так или это ошибка в коде?
код
dh = dpkt.dhcp.DHCP(udp.data)
print dh.giaddr
выход: 182435815
Я почти уверен, что мой giaddr(relay ip) - 10.223.191.231 - подтверждено в wireshark для этого пакета.
1 ответ
Ваш вывод правильный. У вас есть целочисленное значение адреса. Чтобы напечатать точечно-десятичную версию, вы можете сделать это:
>>> import struct
>>> socket.inet_ntoa(struct.pack(">L",x))
'10.223.191.231'