Windows将数据包转发到c#应用程序
有没有办法将tcp数据包转发到
windows(10)上的c#应用程序,让TcpListener / HttpListener处理请求?在
linux中,我可以通过设置iptables(iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port 7000)来实现.
例如,在我的c#应用程序中,我可以监听特定端口上的传入连接(使用TcpListener或套接字侦听器),比方说7000.我可以以某种方式配置窗口以将所有tcp流量转发到127.0.0.1:7000吗?请记住,数据包的目标IP地址与网络中计算机的地址不同(当然,目标硬件地址相同). 我在c#中尝试了使用Pcap .Net的不同方法.我正在捕获数据包并将它们转发到127.0.0.1.但是,似乎我的主机仍然没有捕获数据包(也许它正在将数据包发送到网关,试图在网络中找到具有该IP的主机?).我总是可以在网络中使用我的本地IP地址,但这会导致数据包进入网关然后再次返回,这是无关紧要的,因为我想要的只是让我的TcpListener识别传入的连接.我正在使用的代码: static void processPacket(Packet packet) { EthernetLayer ethernetLayer = (EthernetLayer)packet.Ethernet.ExtractLayer(); IpV4Layer ipLayer = (IpV4Layer)packet.Ethernet.IpV4.ExtractLayer(); if (ipLayer.Protocol == IpV4Protocol.Tcp) { TcpLayer tcpLayer = (TcpLayer)packet.Ethernet.IpV4.Tcp.ExtractLayer(); if (tcpLayer.DestinationPort == 80) { Packet newPacket = BuildTcpPacket(packet,"127.0.0.1"); //copies the packet but changes the ip destination address to 127.0.0.1 Communicator.SendPacket(newPacket); return; } } reroutePacket(packet); //forwards packet to correct destination }
运用
将所有请求重定向到系统注册的IP地址到localhost. 防火墙会丢弃与内部IP地址列表不匹配的数据包,捕获此类流量的唯一方法是将网卡设置为混杂模式,以便通过wireshark等工具捕获所有流量. 我的想法: >将所有流量转储到文件(wireshark)并将其拖尾以发送给其他主机进行处理. 任何评论欢迎! 在计算机网络领域,混杂模式是指以太网硬件的特殊模式,特别是网络接口卡(NIC),它允许NIC接收网络上的所有流量,即使它没有发送到该NIC. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 不同于Windows的Linux系统中命令运用(一)
- 如何安装Neo4j 2.0作为Windows服务
- 在Windows 2016上安装NFS服务时出错
- Windows – TortoiseSVN将评级从1.8降至1.7
- wpf – 为什么要在XAML Window.Loaded调用的方法中运行代码
- windows-mobile – 如何在紧凑框架中获取当前目录?
- 如何在Windows上构建64位MinGW Qt应用程序(使用Qt Creator)
- Windows 2008 Server SP2 64位 – 在TIME_WAIT之后,TCP连接
- wsus – 如果手动安装更新,Windows更新是否会显示已安装的更
- 电子邮件 – MAPI Windows 7 64位
- windows – 在受信任的根证书存储上安装SSL证书的
- 如何处理Windows 7的125%或150%放大率(Delphi)
- windows-xp – GPO禁用Windows XP巡视弹出窗口
- windows-server-2008 – 如何监控Dell服务器上的
- scheduled-task – 如何在不重新启动服务器的情况
- active-directory – Windows Active Directory
- 用户界面 – 类似于RapidWeaver的windows编辑器
- 在win32 API和.NET框架之间进行选择
- Windows中的Grep和Awk表达式错误中的无效字符
- 如何在Windows中删除锁定的文件?