can we in a network gateway write a program with libpcap to extract destination web address and other info like squid? in c language.
is any better way? if yo can give me some example and guide.
您可以将 squid 配置为透明代理。这可以通过编辑 IPTable 规则在 Linux 上完成。这样,所有流量都通过 squid,然后它可以记录或做任何你想做的事情。此外,不会错过任何流量,但会影响性能。
libcap 不能用于实时监控,因为它对网络性能有很大影响。我认为它最多可以执行有效带宽的 25%。您可以通过使用 wireshark(基于 libpcap)观察到这一点。
是的,你可以很容易。只需在端口 80 上捕获数据包,然后在第一个或两个中查找 HTTP 请求。HTTP 请求很容易解析。
请阅读 libpcap 文档并查看一些入门示例。