Форум сайта python.su
Привет всем.
Есть отснифанный IGMP пакет вида
0x0000 01 00 5E 00 43 67 00 02-B3 C8 7F 44 08 00 46 00 ..^.Cg..іИD..F.
0x0010 00 20 06 39 00 00 01 02-30 14 C0 A8 00 7B EA 00 . .9….0.АЁ.{к.
0x0020 43 67 94 04 00 00 16 00-BC 97 EA 00 43 67 Cg”…..ј—к.Cg
Каким образом средствами питона можно его отправить? Понятно, что существуют всякие там конструкторы пакетов, вроде impacket, в котором можно собрать точь-в-точь такой же пакет, но можно ли обойтись без этого? Грубо говоря, можно ли скормить пакет для отправки прямо в хексовом виде?
UPD Ок, вопрос то ли слишком сложный, то ли слишком глупый, поэтому слегка модифицирую его.
dst = ‘234.0.67.103’
s = socket.socket(socket.AF_INET, socket.SOCK_RAW,2)
res=''
temp='01 00 5E 00 43 67 00 02 B3 C8 7F 44 81 00 00 DE 08 00 46 00 00 20 00 01 00 00 01 02 36 4C C0 A8 00 7B EA 00 43 67 94 04 00 00 16 00 BC 97 EA 00 43 67'
for i in temp.split(' '):
res+=chr(int(i, 16))
print res
s.sendto(res, (dst, 0))
Однако, питон почему-то изменяет заголовки, получается вот что:
0x0000 01 00 5E 00 43 67 00 02-B3 C8 7F 44 08 00 45 00 ..^.Cg..?ED..E.
0x0010 00 46 07 06 00 00 01 02-C4 25 C0 A8 00 7B EA 00 .F……A%A?.{e.
0x0020 43 67 01 00 5E 00 43 67-00 02 B3 C8 7F 44 81 00 Cg..^.Cg..?ED?.
0x0030 00 DE 08 00 46 00 00 20-00 01 00 00 01 02 36 4C .?..F.. ……6L
0x0040 C0 A8 00 7B EA 00 43 67-94 04 00 00 16 00 BC 97 A?.{e.Cg”…..?—
0x0050 EA 00 43 67 e.Cg
Как можно заметить, питон дописывает свои заголовки пакета. Можно его как-нибудь заставить этого не делать, а работать только с тем, что дают? =)
Отредактировано (Дек. 1, 2010 14:52:44)
Офлайн