想要知道局域网内每台电脑的ip地址,电脑名称,电脑型号,并监控每台电脑的网络流量,有什么好方法???求高手指教!!!

解决方案 »

  1.   

            Response.Write("客户端IP:   " + Request.UserHostAddress);
            //获取主机名称
            string hostName = Dns.GetHostName();
            IPAddress[] ips;
            ips = Dns.GetHostAddresses(hostName);
            //获取服务器 IP地址
            foreach (IPAddress ip in ips)
            {
                Response.Write("<br>服务器IP:       " + ip.ToString());
            }
      

  2.   

    ARP欺骗。当然,这也会有两个不好的结果:
    1. 网络被你搞得很慢、网络资源被你占了一大半。
    2. 几乎所有查毒软件都知道ARP欺骗是恶意行为,因此杀杀杀。
      

  3.   

    发ARP很容易,如果你了解原理,使用.net的socket,几分钟、几条语句就测试通过了。
      

  4.   

    局域网是公司内部的,不能发arp,只是要监控每台电脑的流量,发现流量过大的时候,知道是那个ip地址,那台电脑
      

  5.   

    局域网不用这么麻烦, 简单的办法就是arp -a察看你的ip是不是在那个显示出来的配置表里面,
    如果没有 就执行
    arp -s IP Mac地址注册你的ip,并绑定你的Mac地址到这个ip, 直接可以解决问题。
    但是有一点就是,你必须每次开机都执行一次,做一个批处理程序,开机启动就OK了。
      

  6.   

    貌似我的回答文不对题啊 ,不好意思, LZ干脆用工具sniffer吧,这个东西很好用
    它能够接收数据包,能够监听,能够获取目标和源的ip等信息,因为都是包含在数据包的头文件里面的
      

  7.   

    我就是想要知道,在c#中获取ip地址,电脑名称,网络流量的代码啊,并把得到的这些东西,显示在一个控件里
      

  8.   

    private void EnumComputers()
    {
    try
    {
       for (int i = 1; i <= 255; i++)
       {
         Ping myPing;
         myPing = new Ping();
         myPing.PingCompleted += new PingCompletedEventHandler(_myPing_PingCompleted);     string pingIP = "192.168.0." + i.ToString();
         myPing.SendAsync(pingIP, 1000, null);
       }
    }
    catch
    {
    }
    }PRIVATE void _myPing_PingCompleted(object sender, PingCompletedEventArgs e)
    {
    if (e.Reply.Status == IPStatus.Success)
    {
        Console.WriteLine(e.Reply.Address.ToString() + "|" + Dns.GetHostByAddress(IPAddress.Parse(e.Reply.Address.ToString())).HostName);
    }}
    这段代码是网上找来的是使用System.Net.NetworkInformation.Ping来遍历局域网
    具体怎么使用啊,有那位高手解答下啊
      

  9.   

    怎么就讨论开ARP了  无语
      

  10.   

    电脑名称,电脑型号 MAC 地址人工一次收齐成基本标识库
    别用IP 做标识,用mac
    然后用pcap实现一个小型的sniffer功能 
      

  11.   

    都这样了 还不能自己baidu阿baidu下载之 sharppcap是C#的 有示例代码或者参考现成的软件ethereal 也是开源的
      

  12.   

    private static void device_PcapOnPacketArrival(                       object sender, Packet packet)...{                if(packet is TCPPacket)    ...{                        DateTime time = packet.Timeval.Date;        int len = packet.PcapHeader.len;        TCPPacket tcp = (TCPPacket)packet;        string srcIp = tcp.SourceAddress;        string dstIp = tcp.DestinationAddress;        int srcPort = tcp.SourcePort;        int dstPort = tcp.DestinationPort;        Console.WriteLine("{0}:{1}:{2},            ...{3} Len=...{4} ...{5}:...{6} -> ...{7}:...{8}",             time.Hour, time.Minute, time.Second,             time.Millisecond, len, srcIp, srcPort,             dstIp, dstPort);    }}我没接触过这方面的代码,这段代码就是百度上找的,能帮忙注释下吗谢谢!