/// <summary> /// 给计划名赋予执行内容 /// </summary> private void loadPlanMethod() { methodDic.Add("检查更新", delegate() { Tools.checkUpdate(db, mainFrm, true); }); methodDic.Add("iNode激活", delegate() { }); methodDic.Add("网络连接状态", delegate() { NetworkDoctorBackObj backObj = this.mainFrm.networkDoctor.checkNetwork(); if (!backObj.Status) { netConnectUI("中断"); this.mainFrm.networkDoctor.start(); } else { netConnectUI("良好"); this.mainFrm.netStatus_lab.Text = "良好"; } }); methodDic.Add("获取用户注册信息", delegate() { Tools.getUserRegInfo(mainFrm.pm.getSelectedNetCard().Ip, db); }); }
/// <summary> /// 检查网卡是否被禁用或者不存在 /// </summary> /// <returns></returns> public NetworkDoctorBackObj checkHandware() { statusUI(0, "start", true); refreshUI(0, "msg", "开始检查"); Thread.Sleep(1000); NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("handware"); backObj.Status = true; //如果没有找到网卡 if (this.netCardDic.Count == 0) { refreshUI(0, "msg", "未发现物理网卡,请检查交换机或重装iNode"); backObj.addMsg("未发现物理网卡\r\n"); backObj.addSugest("此种故障一般由iNode引起,请先卸载iNode,卸载密码www.h3c.com。卸载后重启,再重新安装iNode后,再次运行本工具.."); statusUI(0, "end", false); backObj.Status = false; //如果网卡被禁用=========================== } else { backObj.addMsg("网卡正常\r\n"); refreshUI(0, "msg", "正常"); statusUI(0, "end", true); backObj.Status = true; } TaskStepCallBack(backObj); return(backObj); }
/// <summary> /// 检查iNode状态 /// </summary> /// <returns></returns> public NetworkDoctorBackObj checkiNode() { refreshUI(3, "msg", "开始检查"); statusUI(3, "start", true); Thread.Sleep(1000); NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("iNode"); backObj.Status = true; refreshUI(3, "msg", "判断iNode运行状态"); if (Process.GetProcessesByName("iNode Client").Length != 0) { refreshUI(3, "msg", "iNode正在运行,判断网络是否畅通"); if (checkNetwork().Status) { refreshUI(3, "msg", "正常"); statusUI(3, "end", true); } else { refreshUI(3, "msg", "iNode状态可能异常,尝试重启iNode连接.."); Process.GetProcessesByName("iNode Client")[0].Kill(); Process.Start(defaultPath + @"iNode\iNode Client\iNode Client.exe"); refreshUI(3, "msg", "iNode已重启,等待返回网络通畅情况检测结果.."); Thread.Sleep(5000); if (checkNetwork().Status) { refreshUI(3, "msg", "正常"); statusUI(3, "end", true); } else { refreshUI(3, "msg", "失败,请确认iNode账号密码是否正确"); statusUI(3, "end", false); } } } else { Process.Start(defaultPath + @"iNode\iNode Client\iNode Client.exe"); refreshUI(3, "msg", "iNode未运行,重新启动iNode.."); Thread.Sleep(5000); refreshUI(3, "msg", "iNode已重启,等待返回网络通畅情况检测结果.."); if (checkNetwork().Status) { refreshUI(3, "msg", "正常"); statusUI(3, "end", true); } else { refreshUI(3, "msg", "失败,请确认iNode账号密码是否正确"); statusUI(3, "end", false); } } // TaskStepCallBack(backObj); return(backObj); }
private void taskStepCallBack(NetworkDoctorBackObj backObj) { if (InvokeRequired) { this.Invoke(new AsynUpdateUI(delegate() { //如果检查未通过,说明有问题,直接停止下面的检查 if (!backObj.Status) { } })); } }
public NetworkDoctorBackObj checkVRV() { refreshUI(4, "msg", "开始检查"); statusUI(4, "start", true); Thread.Sleep(1000); NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("iNode"); backObj.Status = true; refreshUI(4, "msg", "判断北信源运行状态"); if (Process.GetProcessesByName("vpengine").Length != 0 || Process.GetProcessesByName("vpengine64").Length != 0) { refreshUI(4, "msg", "北信源正在运行,判断网络是否畅通"); if (checkNetwork().Status) { refreshUI(4, "msg", "正常"); statusUI(4, "end", true); } else { refreshUI(4, "msg", "失败,北信源状态异常,请联系管理员解决。"); statusUI(4, "end", false); } } else { Process.Start(defaultPath + @"VRV\CEMS\vpengine.exe"); refreshUI(4, "msg", "北信源未运行,重新启动北信源.."); Thread.Sleep(5000); refreshUI(4, "msg", "北信源已重启,等待返回网络通畅情况检测结果.."); if (checkNetwork().Status) { refreshUI(4, "msg", "正常"); statusUI(4, "end", true); } else { refreshUI(4, "msg", "失败,北信源状态异常,请联系管理员解决。"); statusUI(4, "end", false); } } // TaskStepCallBack(backObj); return(backObj); }
/// <summary> /// 检查DNS是否设置正确 /// </summary> /// <returns></returns> public NetworkDoctorBackObj checkDNS() { NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("dns"); backObj.Status = true; statusUI(2, "start", true); refreshUI(2, "msg", "开始检查"); Thread.Sleep(1000); if (!this.netCard.isEnableDns(sysConfigDic["defaultDNS1"], sysConfigDic["defaultDNS2"])) { refreshUI(2, "msg", "发现本地dns地址设置错误.."); backObj.addMsg("发现本地dns地址设置错误..\r\n"); backObj.Status = false; refreshUI(2, "msg", "尝试从本地恢复正确的DNS配置.."); backObj.addMsg("尝试从本地恢复正确的DNS配置..\r\n"); this.netCard.setDns(sysConfigDic["defaultDNS1"], sysConfigDic["defaultDNS2"]); refreshUI(2, "msg", "检查DNS是否设置成功.."); backObj.addMsg("检查DNS是否设置成功..\r\n"); this.netCard = refreshNetCard(this.netCard.Name); if (!this.netCard.isEnableDns(sysConfigDic["defaultDNS1"], sysConfigDic["defaultDNS2"])) { refreshUI(2, "msg", "DNS地址设置失败.."); backObj.addMsg("DNS地址设置失败..\r\n"); backObj.addSugest("请尝试手动设置DNS地址\r\n"); refreshUI(2, "msg", "失败"); statusUI(2, "end", false); } else { refreshUI(2, "msg", "DNS地址设置成功!"); statusUI(2, "end", true); refreshUI(2, "msg", "正常"); backObj.addMsg("DNS地址正常\r\n"); backObj.Status = true; } } else { backObj.addMsg("DNS地址正常\r\n"); refreshUI(2, "msg", "正常"); statusUI(2, "end", true); } TaskStepCallBack(backObj); return(backObj); }
private void btn_changeIp_Click(object sender, EventArgs e) { cmdM cmdm = () => pm.changeIp(); this.BeginInvoke(cmdm); MessageBox.Show("修改成功!"); //重新读取面板 NetCard netcard = pm.readIpPanel(); //判断更改后的IP能否ping通,如果能,则保存新的ip配置 System.Threading.Timer threadTimer = new System.Threading.Timer(new System.Threading.TimerCallback(delegate { NetworkDoctorBackObj backObj = networkDoctor.checkNetwork(netcard); if (netcard.isEnableIp() && backObj.Status) { Tools.updatePcInfo(db, netcard); } }), null, 8000, 0); }
/// <summary> /// 检查网络 /// </summary> /// <returns></returns> public NetworkDoctorBackObj checkNetwork(NetCard netcard) { NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("network"); backObj.Status = true; Dictionary <string, string> connectNetTestResultDic = netCard.connectNetTest(this.pingIpDic); foreach (KeyValuePair <string, string> kv in connectNetTestResultDic) { if (kv.Value != "成功") { backObj.Status = false; backObj.addMsg("网络状态异常\r\n"); break; } } TaskStepCallBack(backObj); return(backObj); }
/// <summary> /// 执行自动检查程序 /// </summary> public void autoCheck() { NetworkDoctorBackObj reObj = null; //开始时需要渲染的控件 TaskStart(); //进行逐个检查 //1.先检查硬件连接是否正确 reObj = checkHandware(); if (!reObj.Status) { return; } //2.检查ip地址是否正确 reObj = checkIp(); if (!reObj.Status) { return; } //3.检查dns是否正确 reObj = checkDNS(); if (!reObj.Status) { return; } //4.检查iNode是否正常 reObj = checkiNode(); if (!reObj.Status) { return; } //5.检查北信源是否正常 reObj = checkVRV(); if (!reObj.Status) { return; } //结束时要渲染的控件 TaskFinish(); }
/// <summary> /// 检查IP地址是否设置正确 /// </summary> /// <returns></returns> public NetworkDoctorBackObj checkIp() { NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("ip"); backObj.Status = true; statusUI(1, "start", true); refreshUI(1, "msg", "开始检查"); Thread.Sleep(1000); //判断是否有NetCard符合ip规则 string enableNetCardName = ""; NetCard enableNetCard = null; foreach (KeyValuePair <string, NetCard> kv in netCardDic) { NetCard netCard = kv.Value; if (netCard.isEnableIp()) { enableNetCardName = kv.Key; enableNetCard = kv.Value; } } //检查IP地址是否可用 refreshUI(1, "msg", "检查IP地址是否可用"); if (enableNetCardName == "") { refreshUI(1, "msg", "发现本地ip地址设置错误.."); backObj.addMsg("发现本地ip地址设置错误..\r\n"); backObj.Status = false; if (this.localIpDic != null && this.localIpDic["netCardName"] != "") { refreshUI(1, "msg", "尝试从本地恢复正确的IP配置.."); backObj.addMsg("尝试从本地恢复正确的IP配置..\r\n"); if (this.netCardDic.ContainsKey(this.localIpDic["netCardName"])) { this.netCard = this.netCardDic[this.localIpDic["netCardName"]]; this.netCard.setIp(this.localIpDic["ip"], this.localIpDic["mask"], this.localIpDic["gateway"]); refreshUI(1, "msg", "检查IP是否设置成功.."); backObj.addMsg("检查IP是否设置成功..\r\n"); this.netCard = refreshNetCard(this.netCard.Name); if (!this.netCard.isEnableIp()) { refreshUI(1, "msg", "IP地址设置失败.."); backObj.addMsg("IP地址设置失败..\r\n"); backObj.addSugest("请尝试手动设置IP地址\r\n"); statusUI(1, "end", false); } else { refreshUI(1, "msg", "IP地址设置成功!"); statusUI(1, "end", true); backObj.addMsg("IP地址正常\r\n"); backObj.Status = true; } } else { refreshUI(1, "msg", "本地IP配置未存储,无法恢复"); Thread.Sleep(1000); refreshUI(1, "msg", "失败"); statusUI(1, "end", false); } } } //检查子网掩码是否可用 //refreshUI(1, "msg", "检查子网掩码是否可用"); //if (enableNetCard.isEnableMask()) //{ // refreshUI(1, "msg", "子网掩码设置错误,尝试重新设置子网掩码.."); // backObj.addMsg("子网掩码设置错误,尝试重新设置子网掩码..\r\n"); // enableNetCard.setIp(enableNetCard.Ip, "255.255.255.0",enableNetCard.Gateway); // refreshUI(1, "msg", "检查子网掩码是否设置成功.."); // backObj.addMsg("检查子网掩码是否设置成功..\r\n"); // this.netCard = refreshNetCard(enableNetCardName); // if (!this.netCard.isEnableIp()) // { // refreshUI(1, "msg", "子网掩码设置失败.."); // backObj.addMsg("子网掩码设置失败..\r\n"); // backObj.addSugest("请尝试手动设置子网掩码\r\n"); // statusUI(1, "end", false); // return backObj; // } // else // { // refreshUI(1, "msg", "子网掩码设置成功!"); // statusUI(1, "end", true); // backObj.addMsg("子网掩码正常\r\n"); // backObj.Status = true; // } //} //检查默认网关是否可用 refreshUI(1, "msg", "检查默认网关是否正确"); if (enableNetCard != null) { string[] ipArr = enableNetCard.Ip.Split(new char[] { '.' }); ipArr[3] = "1"; string theoryGateway = string.Join(".", ipArr); if (enableNetCard.isEnableGateway()) { refreshUI(1, "msg", "网关设置错误,尝试重新设置网关.."); backObj.addMsg("网关设置错误,尝试重新设置网关..\r\n"); enableNetCard.setIp(enableNetCard.Ip, enableNetCard.Mask, theoryGateway); refreshUI(1, "msg", "检查网关是否设置成功.."); backObj.addMsg("检查网关是否设置成功..\r\n"); this.netCard = refreshNetCard(enableNetCardName); if (!this.netCard.isEnableGateway()) { refreshUI(1, "msg", "网关地址设置失败.."); backObj.addMsg("网关地址设置失败..\r\n"); backObj.addSugest("请尝试手动设置网关地址\r\n"); statusUI(1, "end", false); return(backObj); } else { refreshUI(1, "msg", "网关地址设置成功!"); statusUI(1, "end", true); backObj.addMsg("网关地址正常\r\n"); backObj.Status = true; } } } refreshUI(1, "msg", "正常"); statusUI(1, "end", true); backObj.addMsg("IP地址正常\r\n"); //任务完成了界面的返回 TaskStepCallBack(backObj); return(backObj); }