Я хочу построить «SIP-сниффер» для моего проекта, чтобы предупреждать входящий звонок из VoIP-связи. Я пытаюсь позвонить со своего смартфона на свой ноутбук и проверить входящий пакет на wirehark , Я вижу все SIP-сообщение (INVITE, BYE, TRYING). Я знаю, что основные из SIP, он использует порт UDP 5060.пакет-сниффер не может понюхать пакет SIP (voip)
Далее я использую этот код из http://www.binarytides.com/python-packet-sniffer-code-linux/ < < --- последний код, длинный код (я пытаюсь вставить, но я не могу вставить код в поле) пробег с Raspberry PI подключается к ноутбуку по кабелю локальной сети.
Эта программа может обнюхать UDP-пакет, я проверяю проводы, что это правильно. 90% (IP-адрес и IP-адрес не верны). Порт и полезная нагрузка верны. Я проверяю заголовок из заголовка ethernet ===> ip header ===> udp header он не отличается от SIP-INVITE, они различают только полезную нагрузку (check by wireshark).
, но я стараюсь VoIP вызова на мой ноутбук, он не работает, он никогда не нюхать 5060 или SIP пакетов (один раз я вижу данные исходящего вызова: «глотка: [email protected]»)
Почему я может нюхать другое, но VoIP не может.
Извините за мой плохой английский. Благодарю вас за советы.
не этот код. это самый длинный код. сокеты з = socket.socket (socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs (0x0003)) это понюхать все в наступающем и исходящих пакетов , но я хочу, входящий только UDP я пытаюсь изменить как ваш совет до этого, но он нюхает только MAC-адрес, thx для вашего advie. – RinnaMo
Можете ли вы изменить это в вашем коде: протокол = ИОЗ [6] в протокол = ntohs (IPH [6]) Вы можете поставить печать для IPH [6] и проверить, если его значение собственно так что мы можем уволить вопрос о проблеме. – Pramod
error say: name 'ntohs' не определен – RinnaMo