Esempio n. 1
0
 //状态刷新
 private void RefreshBtn_Click(object sender, EventArgs e)
 {
     mainFrm_Load(sender, e);
     if (ips.GetLocalIP() != "127.0.0.1")
     {
         IsWireConn = true;
     }
     else
     {
         IsWireConn = false;
         OnlinePCLstv.Items.Clear();
         SelectedIPTxt.Clear();
     }
 }
Esempio n. 2
0
        //后台线程执行
        private void bgw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            //根据本地ip地址获取局域网计算机列表
            //取 192.168.1. ip地址段
            ScanBtn.Enabled       = false;
            CancelScanBtn.Enabled = true;//激活终止扫描按钮
            string[] splitedIP = ips.GetSplitedIP(ips.GetLocalIP());
            //192.168.1.
            string IPblock = splitedIP[0] + "." + splitedIP[1] + "." + splitedIP[2] + ".";

            if (ips.GetLocalIP() == "127.0.0.1")
            {
                MessageBox.Show(this, "发生Ping异常,请检查您的网络连接,查看网线是否意外断开,或者禁用了本地连接等." + "\r\n" +
                                "如果遇到网络延迟值极高的问题,请联系网络管理员."
                                , "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                IsWireConn            = false;
                ScanprogressBar.Value = 0;
                return;
            }
            //从1到255逐个ping
            for (int i = 1; i <= 255; i++)
            {
                ListViewItem items = new ListViewItem(); //列表项
                if (bgw.CancellationPending)             //如果CancelAsync()则取消操作
                {
                    return;
                }
                try
                {
                    if (ping.Send(IPblock + i.ToString(), 6).Status == IPStatus.Success)
                    {
                        result = IPblock + i.ToString();
                        items  = OnlinePCLstv.Items.Add(result);
                        //计算机名无法获取的情况
                        try
                        {
                            items.SubItems.Add(ips.GetRemoteHostNameByIP(result));
                        }
                        catch (Exception) { items.SubItems.Add("无法获取计算机名"); }
                        items.EnsureVisible();
                    }
                    bgw.ReportProgress(i);
                }
                catch (Exception)/*但是在扫描的时候可能会被断开网络连接,当断开时,提示*/
                {
                    //提示错误
                    MessageBox.Show(this, "发生Ping异常,请检查您的网络连接,查看网线是否意外断开,或者禁用了本地连接等." + "\r\n" +
                                    "如果遇到网络延迟值极高的问题,请联系网络管理员."
                                    , "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    ScanprogressBar.Value = 0;
                    //网线断开
                    IsWireConn = false;
                    mainFrm_Load(sender, e);
                    SelectedIPTxt.Clear();
                    return;
                }

                ProcLbl.Text = i.ToString();
            }
        }