我想建立“SIP嗅探器”为我的项目,以提醒从VoIP的communication.I来电试图从我的智能手机打电话给我的笔记本电脑和Wireshark的检查输入数据包。我看到所有的SIP消息(INVITE,BYE,TRYING)。我知道SIP的基础,它使用UDP端口5060包嗅探器不能嗅出SIP电话(VoIP)数据包
接下来,我使用http://www.binarytides.com/python-packet-sniffer-code-linux/ < <这个代码---最后一个码,最长代码(我尝试粘贴,但我不能粘贴框代码)运行Raspberry PI通过LAN电缆连接到笔记本电脑。
该程序可以嗅探UDP包,我检查的Wireshark它正确的90%(IP地址和IP目的地不正确)端口和净荷是否正确。我从以太网头部检查头部===> IP头部===> udp头部 它与SIP-INVITE没有区别,它们只有不同的有效负载(通过wireshark检查)。
但我尽量VoIP呼叫我的笔记本电脑,这是不行的,它从来没有嗅出5060或SIP数据包(有一次我看到呼出数据:“SIP:[email protected]”)
为什么我可以嗅探其他,但VoIP不能。
对不起,我英文很差。 感谢您的建议。
不是这个代码。它是最长的代码。 原始套接字S = socket.socket(socket.AF_PACKET,socket.SOCK_RAW,socket.ntohs(为0x0003)) 它嗅出所有传入和传出的数据包 但我只想要进入的UDP 我试图改变像你的建议,但它只嗅探MAC地址, THX为您的advie。 – RinnaMo
能否请你在你的代码更改此: 协议= IPH [6] 到 协议= ntohs和(IPH [6]) 你可以就IPH打印[6],并检查它的值是恰当,我们可以解雇永久性问题。 – Pramod
错误说:名字'ntohs'没有定义 – RinnaMo