帮助我开始(交通操纵)

时间:2011-03-26 11:39:57

标签: c++ c windows network-programming tcp

我的主要目标是创建一个高级程序,用于处理通过路由器在我的网络中路由的数据包。让我的程序完全控制路由器。将下载/上传速度设置为输入,将效果应用于网络中的某些设备。阻止上传或下载流量。为上传或下载速度设置第二个延迟。指定丢失数据包的百分比,列表继续。

问题在于我不知道从哪里开始。我知道最基本的语言。我想用C,C ++或C#创建这个程序,但我还不知道。在创建此程序之前还需要了解其他什么? Winsock还是什么? Winpcap API?

这个目标是我学习编程到极致的动力,我真的很期待它。

提前致谢!

5 个答案:

答案 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防火墙规则一起使用,以将特定(或所有)数据包重定向到常规用户程序。然后,该程序可以读取数据包并对其进行修改,甚至请求将其删除。

http://www.netfilter.org/projects/libnetfilter_queue/

答案 4 :(得分:0)

如果要操纵Windows计算机上的网络流量(如前所述),则需要一些额外的软件。这个操作系统不会让您完全控制自己,这出于某些原因是可以的。

我认为如果要使用Win10,应该使用winpcapwin10pcap完成操作。这些软件包包含Windows驱动程序和libpcap用户空间库。