2013-05-13 5 views
0

Я беру класс цифровых ценных бумаг, и я не понимаю один из примеров по битовой маске.TCPDUMP: Bitmasking

Для поиска пакетов IPv4 они говорят, что запустить эту команду

ТСРйитр IP [0] & 0xf0 = 4

Я считаю, что это неправильно, битовая маска правильно выбирает только первые 4 бита IP заголовок (который является номером версии) и устанавливает все биты для длины заголовка интернета 0.

Но ответ не должен быть

ТСРйитра IP [0] & 0xf0 = 0x40

Это говорится, чтобы установить все биты в первом байте заголовка пакета IP в течение первых 4-х битов, за исключением (что номер версии) в 0 и чтобы показывать только пакеты с этим значением, равным 0100 0000

ответ

2

Это говорится, чтобы установить все биты в первом байте заголовка пакета IP в течение первых 4-х битов, за исключением (что номер версии) до 0

Вернее, он выбирает первые 4 бита первый байт заголовка IP-пакета и возвращает значение, в котором нижние 4 бита равны нулю.

Так вы являетесь правильно, в этом tcpdump IP[0] & 0xf0 = 4 воле НИКОГДА успеха (как IP[0] & 0xf0 находится в диапазоне 0x00 через 0xf0, с клевом низкого порядка является 0, поэтому он может НИКОГДА НЕ равны 4) и IP[0] & 0xf0 = 0x40 будет успешным, только если номер версии IP в IP-заголовке равен 4 (а не, например, 6).

+0

спасибо! я ценю это – user2158382

 Смежные вопросы

  • Нет связанных вопросов^_^