返回信息流本人c#菜鸟,求教各位大大。
我用c#写了一个sniffer类似的程序,在物理板卡上可以轻松的抓包,但是我把这个程序放到vmware下的时候我去抓不下NAT网络中的包。求教啊。
之前用wireshark都可以抓下特定IP的包的数据,但是我就抓不下来,IP设置中确实开的书混杂模式。
这里是网络设置的代码。
IPAddress hosts = Dns.GetHostByName(Dns.GetHostName()).AddressList[1];
m_PacketMonitors = new PacketMoniter(hosts);
m_Monitor = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
m_Monitor.Bind(new IPEndPoint(IP, 0));
m_Monitor.IOControl(SIO_RCVALL, BitConverter.GetBytes((int)1), null);
m_Monitor.BeginReceive(m_Buffer, 0, m_Buffer.Length, SocketFlags.None, new AsyncCallback(this.OnReceive), null);
其中OnReceive是类中用代理模式写的一个事件,无关紧要
PS Dns.GetHostByName(Dns.GetHostName()).AddressList[1];是主机在NAT中的网络地址,应该是。
这是一条镜像帖。来源:北邮人论坛 / dot-net / #2745同步于 2011/3/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
c#菜鸟,网络编程相关
lancehahn
2011/3/24镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。