请选择 进入手机版 | 继续访问电脑版

马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

报红怎么回事

  [复制链接]
查看6131 | 回复4 | 2017-5-3 12:06:02 | 显示全部楼层 |阅读模式
  var devices = CaptureDeviceList.Instance;instance报红
            //IP = ipAddress;
            int count = devices.Count;count也报红
            if (count < 1)
            {
                Console.WriteLine("No device found on this machine");
                return;
            }


            //开始抓包
            for (int i = 0; i < count; ++i)
            {
                for (int j = 0; j < ports.Count; ++j)
                {
                    CaptureFlowRecv(IP, ports[j], i);
                    CaptureFlowSend(IP, ports[j], i);
                }
            }
        }
        #region 获取IP地址
        /// <summary>
        /// 获取IP地址
        /// </summary>
        /// <returns></returns>
        public static string GetIPAdrress()
        {
            List<IPAddress> PhysicalIP = new List<IPAddress>();//物理网卡IP地址(包括无线,有线,不包括虚拟网卡)
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();//获取本机所有网卡对象
            foreach (NetworkInterface adapter in adapters)
            {
                if (!adapter.Description.Contains("Virtual") && !adapter.Description.Contains("VMnet"))//枚举条件:描述中包含"Virtual"
                {
                    IPInterfaceProperties ipProperties = adapter.GetIPProperties();//获取IP配置
                    UnicastIPAddressInformationCollection ipCollection = ipProperties.UnicastAddresses;//获取单播地址集
                    foreach (UnicastIPAddressInformation ip in ipCollection)
                    {
                        if (ip.Address.AddressFamily == AddressFamily.InterNetwork)//只要ipv4的
                            PhysicalIP.Add(ip.Address);
                    }
                }
            }

            //获取所有IP地址,包括有线,无线,虚拟网卡
            String LocalhostName = Dns.GetHostName();
            IPHostEntry host = Dns.GetHostEntry(LocalhostName);
            List<IPAddress> addresses = new List<IPAddress>();
            foreach (IPAddress ip in host.AddressList)
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork && PhysicalIP.Contains(ip))
                {
                    addresses.Add(ip);
                }
            }
            if (addresses.Count == 0)
                return "";
            return addresses.ToArray()[0].ToString();
        }
        #endregion
        public void CaptureFlowSend(string IP, int portID, int deviceID)
        {
            ICaptureDevice device = (ICaptureDevice)CaptureDeviceList.New()[deviceID];new()也报红

            device.OnPacketArrival += new PacketArrivalEventHandler(device_OnPacketArrivalSend);

            int readTimeoutMilliseconds = 1000;
            device.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds);

            string filter = "src host " + IP + " and src port " + portID;
            device.Filter = filter;
            device.StartCapture();
            ProcInfo.dev.Add(device);
        }


Robin | 2017-5-3 16:20:41 | 显示全部楼层
肯定是没有这个属性或方法 ,  还能怎么办 !
ibcadmin | 2017-5-4 08:57:50 | 显示全部楼层
CaptureDeviceList 引用的不对
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
娃哈哈 | 2017-5-4 15:22:12 | 显示全部楼层
谢谢
娃哈哈 | 2017-5-4 15:25:01 | 显示全部楼层
Robin 发表于 2017-5-3 16:20
肯定是没有这个属性或方法 ,  还能怎么办 !

谢谢
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则