我正在尝试为服务器应用程序指定基础,其目的是......
1 '接收' tcp 和/或 udp 数据包
2 解释内容(即标头值)
要添加更多详细信息,此服务器将收到“sip 邀请”并以“302 重定向”进行响应。
我有使用 Net::Pcap 和 perl 的经验,并且知道我可以通过循环过滤数据包、解码然后使用 Net::SIP 之类的东西来响应来实现这一点。
但是,我不需要的这两个模块/应用程序都有很多膨胀。服务器将承受重负载,如果我自己运行 TCPDUMP,由于服务器负载,它会丢失内核中的数据包,所以担心它不合适:(
我是否可以通过在套接字上“侦听”(例如使用 IO::Socket)和解码数据包来实现相同的目的?
不幸的是,通过调试,很难判断 IO::Socket 是否会让我有机会看到原始数据包?相反,它会自动将消息解码为可读格式!
tl;dr:我想捕获大量 SIP 邀请,分析头部值,并使用 SIP 302 重定向进行响应。有没有比使用 tcpdump(通过 Net::Pcap)更好的方法来实现这一点?
谢谢,驼鹿