📄 ipdetectaction.cs
字号:
namespace Imps.Client.CommLayer.NetworkDetect
{
using Imps.Client.Resource;
using Imps.Client.Utils;
using System;
using System.Collections.Generic;
using System.Net.NetworkInformation;
using System.Threading;
public class IPDetectAction : DetectAction
{
public IPDetectAction()
{
base.Description = "IP地址";
base.NextStage = NetworkDetectStage.GateWay;
}
public override void BeginDetectAction()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(this.StartDetect), this);
}
public override void CancelDetectAction()
{
}
private void StartDetect(object state)
{
Thread.CurrentThread.Name = "Imps.Client.Pc.NetworkDetect.IPDetectAction";
List<DetectResult> details = new List<DetectResult>();
try
{
int num = 0;
foreach (NetworkInterface interface2 in NetworkInterface.GetAllNetworkInterfaces())
{
using (IEnumerator<UnicastIPAddressInformation> enumerator = interface2.GetIPProperties().get_UnicastAddresses().GetEnumerator())
{
while (enumerator.MoveNext())
{
string description = enumerator.get_Current().get_Address().ToString();
if (description != "127.0.0.1")
{
if (description.StartsWith("169"))
{
details.Add(new DetectResult(DetectStatus.Failed, description));
}
else
{
details.Add(new DetectResult(DetectStatus.Passed, description));
num++;
}
}
}
}
}
base.CanResume = num > 0;
base.FireDetecFinsihedEvent(this, new DetectEventArgs(num > 0, details));
}
catch (PlatformNotSupportedException exception)
{
ClientLogger.WriteGeneral(exception.ToString());
details.Add(new DetectResult(DetectStatus.Failed, StringTable.NetworkDetect.PlatformNotSupport));
base.CanResume = true;
base.FireDetecFinsihedEvent(this, new DetectEventArgs(false, details));
}
catch (Exception exception2)
{
ClientLogger.WriteGeneral(exception2.ToString());
details.Add(new DetectResult(DetectStatus.Failed, StringTable.NetworkDetect.ErrorOccour));
base.CanResume = true;
base.FireDetecFinsihedEvent(this, new DetectEventArgs(true, details));
}
}
public override NetworkDetectStage CurrentStage
{
get
{
return NetworkDetectStage.IPEndPoint;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -