chore: added ping bground service
This commit is contained in:
parent
94dea561f0
commit
b06964169e
|
@ -13,6 +13,7 @@ namespace PortProxyGUI.Data
|
||||||
public int ConnectPort { get; set; }
|
public int ConnectPort { get; set; }
|
||||||
public string Comment { get; set; }
|
public string Comment { get; set; }
|
||||||
public string Group { get; set; }
|
public string Group { get; set; }
|
||||||
|
public string PingStatus { get; set; }
|
||||||
|
|
||||||
public bool Valid => ListenPort > 0 && ConnectPort > 0;
|
public bool Valid => ListenPort > 0 && ConnectPort > 0;
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
this.columnHeader4 = new System.Windows.Forms.ColumnHeader();
|
this.columnHeader4 = new System.Windows.Forms.ColumnHeader();
|
||||||
this.columnHeader5 = new System.Windows.Forms.ColumnHeader();
|
this.columnHeader5 = new System.Windows.Forms.ColumnHeader();
|
||||||
this.columnHeader6 = new System.Windows.Forms.ColumnHeader();
|
this.columnHeader6 = new System.Windows.Forms.ColumnHeader();
|
||||||
|
this.columnPingStatus = new System.Windows.Forms.ColumnHeader();
|
||||||
this.columnHeader7 = new System.Windows.Forms.ColumnHeader();
|
this.columnHeader7 = new System.Windows.Forms.ColumnHeader();
|
||||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.toolStripMenuItem_Enable = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_Enable = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
@ -51,6 +52,7 @@
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.toolStripMenuItem_About = new System.Windows.Forms.ToolStripMenuItem();
|
this.toolStripMenuItem_About = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.imageListProxies = new System.Windows.Forms.ImageList(this.components);
|
this.imageListProxies = new System.Windows.Forms.ImageList(this.components);
|
||||||
|
this.TimerPingTargets = new System.Windows.Forms.Timer(this.components);
|
||||||
this.contextMenuStrip1.SuspendLayout();
|
this.contextMenuStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
|
@ -64,6 +66,7 @@
|
||||||
this.columnHeader4,
|
this.columnHeader4,
|
||||||
this.columnHeader5,
|
this.columnHeader5,
|
||||||
this.columnHeader6,
|
this.columnHeader6,
|
||||||
|
this.columnPingStatus,
|
||||||
this.columnHeader7});
|
this.columnHeader7});
|
||||||
this.listViewProxies.ContextMenuStrip = this.contextMenuStrip1;
|
this.listViewProxies.ContextMenuStrip = this.contextMenuStrip1;
|
||||||
resources.ApplyResources(this.listViewProxies, "listViewProxies");
|
resources.ApplyResources(this.listViewProxies, "listViewProxies");
|
||||||
|
@ -104,6 +107,10 @@
|
||||||
this.columnHeader6.Tag = "";
|
this.columnHeader6.Tag = "";
|
||||||
resources.ApplyResources(this.columnHeader6, "columnHeader6");
|
resources.ApplyResources(this.columnHeader6, "columnHeader6");
|
||||||
//
|
//
|
||||||
|
// columnPingStatus
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.columnPingStatus, "columnPingStatus");
|
||||||
|
//
|
||||||
// columnHeader7
|
// columnHeader7
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.columnHeader7, "columnHeader7");
|
resources.ApplyResources(this.columnHeader7, "columnHeader7");
|
||||||
|
@ -189,6 +196,12 @@
|
||||||
this.imageListProxies.Images.SetKeyName(0, "disable.png");
|
this.imageListProxies.Images.SetKeyName(0, "disable.png");
|
||||||
this.imageListProxies.Images.SetKeyName(1, "enable.png");
|
this.imageListProxies.Images.SetKeyName(1, "enable.png");
|
||||||
//
|
//
|
||||||
|
// TimerPingTargets
|
||||||
|
//
|
||||||
|
this.TimerPingTargets.Enabled = true;
|
||||||
|
this.TimerPingTargets.Interval = 5000;
|
||||||
|
this.TimerPingTargets.Tick += new System.EventHandler(this.TimerPingTargets_Tick);
|
||||||
|
//
|
||||||
// PortProxyGUI
|
// PortProxyGUI
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
|
@ -224,6 +237,8 @@
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader7;
|
private System.Windows.Forms.ColumnHeader columnHeader7;
|
||||||
internal System.Windows.Forms.ListView listViewProxies;
|
internal System.Windows.Forms.ListView listViewProxies;
|
||||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_FlushDnsCache;
|
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem_FlushDnsCache;
|
||||||
|
private System.Windows.Forms.ColumnHeader columnPingStatus;
|
||||||
|
private System.Windows.Forms.Timer TimerPingTargets;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using static System.Windows.Forms.ListViewItem;
|
using static System.Windows.Forms.ListViewItem;
|
||||||
|
|
||||||
|
@ -46,7 +47,8 @@ namespace PortProxyGUI
|
||||||
ListenPort = listenPort,
|
ListenPort = listenPort,
|
||||||
ConnectTo = subItems[4].Text.Trim(),
|
ConnectTo = subItems[4].Text.Trim(),
|
||||||
ConnectPort = connectPort,
|
ConnectPort = connectPort,
|
||||||
Comment = subItems[6].Text.Trim(),
|
PingStatus = subItems[6].Text.Trim(),
|
||||||
|
Comment = subItems[7].Text.Trim(),
|
||||||
Group = item.Group?.Header.Trim(),
|
Group = item.Group?.Header.Trim(),
|
||||||
};
|
};
|
||||||
return rule;
|
return rule;
|
||||||
|
@ -154,7 +156,8 @@ namespace PortProxyGUI
|
||||||
new ListViewSubItem(item, rule.ListenPort.ToString()) { Tag = "Number" },
|
new ListViewSubItem(item, rule.ListenPort.ToString()) { Tag = "Number" },
|
||||||
new ListViewSubItem(item, rule.ConnectTo),
|
new ListViewSubItem(item, rule.ConnectTo),
|
||||||
new ListViewSubItem(item, rule.ConnectPort.ToString ()) { Tag = "Number" },
|
new ListViewSubItem(item, rule.ConnectPort.ToString ()) { Tag = "Number" },
|
||||||
new ListViewSubItem(item, rule.Comment ?? ""),
|
new ListViewSubItem(item, rule.PingStatus ?? string.Empty),
|
||||||
|
new ListViewSubItem(item, rule.Comment ?? string.Empty)
|
||||||
});
|
});
|
||||||
|
|
||||||
if (rule.Group.IsNullOrWhiteSpace()) item.Group = null;
|
if (rule.Group.IsNullOrWhiteSpace()) item.Group = null;
|
||||||
|
@ -314,5 +317,28 @@ namespace PortProxyGUI
|
||||||
if (e.KeyCode == Keys.Delete) DeleteSelectedProxies();
|
if (e.KeyCode == Keys.Delete) DeleteSelectedProxies();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void TimerPingTargets_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
TimerPingTargets.Stop();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var items = listViewProxies.Items.OfType<ListViewItem>();
|
||||||
|
foreach (var item in items)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var rule = ParseRule(item);
|
||||||
|
//Ping Host
|
||||||
|
PingCheckerUtil.GetPingResult(rule.ConnectTo, 2, out IPStatus ipStatus, out _, out _);
|
||||||
|
rule.PingStatus = ipStatus.ToString();
|
||||||
|
UpdateListViewItem(item, rule, item.ImageIndex);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
TimerPingTargets.Start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,12 @@
|
||||||
<data name="columnHeader6.Width" type="System.Int32, mscorlib">
|
<data name="columnHeader6.Width" type="System.Int32, mscorlib">
|
||||||
<value>100</value>
|
<value>100</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="columnPingStatus.Text" xml:space="preserve">
|
||||||
|
<value>Ping Status</value>
|
||||||
|
</data>
|
||||||
|
<data name="columnPingStatus.Width" type="System.Int32, mscorlib">
|
||||||
|
<value>104</value>
|
||||||
|
</data>
|
||||||
<data name="columnHeader7.Text" xml:space="preserve">
|
<data name="columnHeader7.Text" xml:space="preserve">
|
||||||
<value>Comment</value>
|
<value>Comment</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -105,28 +111,28 @@
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="toolStripMenuItem_Enable.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_Enable.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Enable.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Enable.Text" xml:space="preserve">
|
||||||
<value>Enable (&E)</value>
|
<value>Enable (&E)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Disable.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_Disable.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Disable.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Disable.Text" xml:space="preserve">
|
||||||
<value>Disable (&I)</value>
|
<value>Disable (&I)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>177, 6</value>
|
<value>161, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Refresh.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_Refresh.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Refresh.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Refresh.Text" xml:space="preserve">
|
||||||
<value>Refresh (&F)</value>
|
<value>Refresh (&F)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_FlushDnsCache.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_FlushDnsCache.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_FlushDnsCache.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_FlushDnsCache.Text" xml:space="preserve">
|
||||||
<value>Flush DNS Cache</value>
|
<value>Flush DNS Cache</value>
|
||||||
|
@ -135,37 +141,37 @@
|
||||||
<value>Will perform ipconfig/flushDNS</value>
|
<value>Will perform ipconfig/flushDNS</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>177, 6</value>
|
<value>161, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_New.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_New.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_New.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_New.Text" xml:space="preserve">
|
||||||
<value>New (&N) ...</value>
|
<value>New (&N) ...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Modify.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_Modify.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Modify.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Modify.Text" xml:space="preserve">
|
||||||
<value>Modify (&M) ...</value>
|
<value>Modify (&M) ...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Delete.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_Delete.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_Delete.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_Delete.Text" xml:space="preserve">
|
||||||
<value>Delete (&D)</value>
|
<value>Delete (&D)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>177, 6</value>
|
<value>161, 6</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_About.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="toolStripMenuItem_About.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>180, 22</value>
|
<value>164, 22</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="toolStripMenuItem_About.Text" xml:space="preserve">
|
<data name="toolStripMenuItem_About.Text" xml:space="preserve">
|
||||||
<value>About</value>
|
<value>About</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="contextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>181, 220</value>
|
<value>165, 198</value>
|
||||||
</data>
|
</data>
|
||||||
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
<data name=">>contextMenuStrip1.Name" xml:space="preserve">
|
||||||
<value>contextMenuStrip1</value>
|
<value>contextMenuStrip1</value>
|
||||||
|
@ -184,10 +190,10 @@
|
||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="listViewProxies.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
<data name="listViewProxies.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
<value>4, 3, 4, 3</value>
|
<value>5, 3, 5, 3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="listViewProxies.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="listViewProxies.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>704, 456</value>
|
<value>797, 456</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="imageListProxies.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="imageListProxies.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>182, 17</value>
|
<value>182, 17</value>
|
||||||
|
@ -197,7 +203,7 @@
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
|
AAEAAAD/////AQAAAAAAAAAMAgAAAEZTeXN0ZW0uV2luZG93cy5Gb3JtcywgQ3VsdHVyZT1uZXV0cmFs
|
||||||
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
|
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAmU3lzdGVtLldpbmRvd3MuRm9ybXMu
|
||||||
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA3AgAAAJNU0Z0AUkBTAIBAQIB
|
SW1hZ2VMaXN0U3RyZWFtZXIBAAAABERhdGEHAgIAAAAJAwAAAA8DAAAA3AgAAAJNU0Z0AUkBTAIBAQIB
|
||||||
AAEwAQEBMAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEQAwABAQEAAQgG
|
AAFYAQEBWAEBARABAAEQAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMAAUADAAEQAwABAQEAAQgG
|
||||||
AAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB
|
AAEEGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEAAfABygGmAQABMwUAATMB
|
||||||
AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB
|
AAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEAAYABfAH/AQACUAH/AQAB
|
||||||
kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC
|
kwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFmAwABmQMAAcwCAAEzAwAC
|
||||||
|
@ -252,14 +258,20 @@
|
||||||
<data name=">>listViewProxies.ZOrder" xml:space="preserve">
|
<data name=">>listViewProxies.ZOrder" xml:space="preserve">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
</data>
|
</data>
|
||||||
|
<metadata name="TimerPingTargets.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>324, 17</value>
|
||||||
|
</metadata>
|
||||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>6, 13</value>
|
<value>7, 15</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>704, 456</value>
|
<value>797, 456</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Segoe UI, 9pt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
|
@ -2464,6 +2476,12 @@
|
||||||
<data name=">>columnHeader6.Type" xml:space="preserve">
|
<data name=">>columnHeader6.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>columnPingStatus.Name" xml:space="preserve">
|
||||||
|
<value>columnPingStatus</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>columnPingStatus.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
<data name=">>columnHeader7.Name" xml:space="preserve">
|
<data name=">>columnHeader7.Name" xml:space="preserve">
|
||||||
<value>columnHeader7</value>
|
<value>columnHeader7</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -2542,6 +2560,12 @@
|
||||||
<data name=">>imageListProxies.Type" xml:space="preserve">
|
<data name=">>imageListProxies.Type" xml:space="preserve">
|
||||||
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name=">>TimerPingTargets.Name" xml:space="preserve">
|
||||||
|
<value>TimerPingTargets</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>TimerPingTargets.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Timer, System.Windows.Forms, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
<data name=">>$this.Name" xml:space="preserve">
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
<value>PortProxyGUI</value>
|
<value>PortProxyGUI</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace PortProxyGUI
|
||||||
|
{
|
||||||
|
public static class PingCheckerUtil
|
||||||
|
{
|
||||||
|
// Adapted from https://docs.microsoft.com/en-us/dotnet/api/system.net.networkinformation.ping.send
|
||||||
|
public static bool GetPingResult(string ipAddress, int timeout, out IPStatus responseStatus, out IPAddress responseIpAddress, out long responseTime)
|
||||||
|
{
|
||||||
|
//Defaults
|
||||||
|
responseIpAddress = null;
|
||||||
|
responseTime = 0;
|
||||||
|
responseStatus = IPStatus.Unknown;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//Sending 32bytes
|
||||||
|
byte[] buffer = Encoding.ASCII.GetBytes("12345678901234567890123456789012");
|
||||||
|
Ping pingSender = new Ping();
|
||||||
|
PingOptions options = new PingOptions(64, true);
|
||||||
|
PingReply reply = pingSender.Send(ipAddress, timeout, buffer, options);
|
||||||
|
responseIpAddress = reply.Address;
|
||||||
|
responseTime = reply.RoundtripTime;
|
||||||
|
responseStatus = reply.Status;
|
||||||
|
return (reply.Status == IPStatus.Success) ? true : false;
|
||||||
|
}
|
||||||
|
catch { return false; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue