我的主要目标是创建一个高级程序,用于处理通过路由器在我的网络中路由的数据包。让我的程序完全控制路由器。将下载/上传速度设置为输入,将效果应用于网络中的某些设备。阻止上传或下载流量。为上传或下载速度设置第二个延迟。指定丢失数据包的百分比,列表继续。
问题在于我不知道从哪里开始。我知道最基本的语言。我想用C,C ++或C#创建这个程序,但我还不知道。在创建此程序之前还需要了解其他什么? Winsock还是什么? Winpcap API?
这个目标是我学习编程到极致的动力,我真的很期待它。
提前致谢!
答案 0 :(得分:1)
嗯,我想你会想看看pcap(?): pcap
答案 1 :(得分:1)
退房:
http://beej.us/guide/bgnet/html/multi/index.html
'Beej的网络编程指南 使用Internet套接字'
您可能需要了解有关编程套接字以进行捕获和操作的信息。
如果我是你,我会用C语言编写,我现在正在用C ++编写一个类似的项目,但现在还为时已晚,无法停止并重新开始。
希望有所帮助。
答案 2 :(得分:0)
请记住,您需要一台可以重新编程的路由器,或者您需要将PC用作路由器才能执行此操作。
无论哪种方式,您都希望了解IPTABLES的实施方式。
答案 3 :(得分:0)
我从未见过桌面Windows只用作路由器的Windows Server,尽管它仍然可能。 libpcap用于数据包捕获,但不是我理解的拦截。像Wireshark这样的程序使用它来监视数据包的副本,但不能修改它们。如果你想尝试这个,我的印象是有很多文档和工具可以用Linux上的NetFilter / IPTables做这样的事情。您甚至可以在兼容的路由器上安装类似OpenWRT的东西,并获得一个小巧便宜的Linux路由器,尽管桌面Linux可能有助于开发。 NetFilter QUEUE库可与某些IPTables防火墙规则一起使用,以将特定(或所有)数据包重定向到常规用户程序。然后,该程序可以读取数据包并对其进行修改,甚至请求将其删除。
答案 4 :(得分:0)