Кто-нибудь знает как легче всего просмотреть содержание отправленного/принятого пакета в бинарном представлении?
TCPdump, к примеру, умеет выводить в ASCII HEX:
Код: Выделить всё
> tcpdump -vv -i wlp2s0 -S port 123 -l -A -nnvvXS
tcpdump: listening on wlp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
00:42:55.834585 IP (tos 0x0, ttl 64, id 41491, offset 0, flags [DF], proto UDP (17), length 76)
192.168.3.100.50083 > 64.113.32.5.123: [udp sum ok] NTPv3, length 48
Client, Leap indicator: (0), Stratum 0 (unspecified), poll 0 (1s), precision 0
Root Delay: 0.000000, Root dispersion: 0.000000, Reference-ID: (unspec)
Reference Timestamp: 0.000000000
Originator Timestamp: 0.000000000
Receive Timestamp: 0.000000000
Transmit Timestamp: 0.000000000
Originator - Receive Timestamp: 0.000000000
Originator - Transmit Timestamp: 0.000000000
0x0000: ec23 3dcf 196c 0022 fafe 5d92 0800 4500 .#=..l."..]...E.
0x0010: 004c a213 4000 4011 740b c0a8 0364 4071 .L..@.@.t....d@q
0x0020: 2005 c3a3 007b 0038 fbdc 1b00 0000 0000 .....{.8........
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0x0050: 0000 0000 0000 0000 0000 ..........
00:42:56.012883 IP (tos 0x0, ttl 55, id 16126, offset 0, flags [none], proto UDP (17), length 76)
64.113.32.5.123 > 192.168.3.100.50083: [udp sum ok] NTPv3, length 48
Server, Leap indicator: (0), Stratum 1 (primary reference), poll 0 (1s), precision -29
Root Delay: 0.000000, Root dispersion: 0.000000, Reference-ID: ACTS
Reference Timestamp: 3692821405.467281281 (2017/01/08 00:43:25)
Originator Timestamp: 0.000000000
Receive Timestamp: 3692821429.444157630 (2017/01/08 00:43:49)
Transmit Timestamp: 3692821429.444197565 (2017/01/08 00:43:49)
Originator - Receive Timestamp: 3692821429.444157630 (2017/01/08 00:43:49)
Originator - Transmit Timestamp: 3692821429.444197565 (2017/01/08 00:43:49)
0x0000: 0022 fafe 5d92 ec23 3dcf 196c 0800 4500 ."..]..#=..l..E.
0x0010: 004c 3efe 0000 3711 2021 4071 2005 c0a8 .L>...7..!@q....
0x0020: 0364 007b c3a3 0038 8415 1c01 00e3 0000 .d.{...8........
0x0030: 0000 0000 0000 4143 5453 dc1b fb9d 779f ......ACTS....w.
0x0040: bef3 0000 0000 0000 0000 dc1b fbb5 71b4 ..............q.
0x0050: 5058 dc1b fbb5 71b6 ee98 PX....q...
^C
2 packets captured
2 packets received by filter
0 packets dropped by kernel
Мне нужно то же самое, но не в hex, а в двоичном виде.
Я дебажу RAW сокеты и хочу видеть, что именно отправляет моя программа.
Стандарт описывает заголовки по битам. По битам (00, 011) я их и заполняю, и при отладке хочу в бинарном виде их и видеть.