顯示出目前網際網路連線狀態,類似netstat.exe程式的功能
說明
在藍色小舖中,有人問起如何顯示電腦目前的連線狀態,功能類似netstat指令的功能,這部份的功能可以透過
System.Net.NetworkInformation.TcpConnectionInformation : 提供本機電腦上的傳輸控制通訊協定 (TCP) 連線資訊。
可以參考MSDN http://msdn.microsoft.com/zh-tw/library/system.net.networkinformation.tcpconnectioninformation
以下程式碼,將 TcpConnectionInformation 放入 Timer_Tick 中,定時更新電腦目前的連線狀態
C# 程式碼
01 using System;
02 using System.Collections.Generic;
03 using System.ComponentModel;
04 using System.Data;
05 using System.Drawing;
06 using System.Text;
07 using System.Windows.Forms;
08
09 namespace WindowsApplication27
10 {
11 public partial class Form1 : Form
12 {
13 public Form1()
14 {
15 InitializeComponent();
16 }
17
18 private void Form1_Load(object sender, EventArgs e)
19 {
20 timer1.Interval = 100;
21 timer1.Enabled = true;
22 }
23
24 private void timer1_Tick(object sender, EventArgs e)
25 {
26 System.Text.StringBuilder builder = new System.Text.StringBuilder();
27 System.Net.NetworkInformation.IPGlobalProperties ipProps = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties();
28 foreach (System.Net.NetworkInformation.TcpConnectionInformation connection in ipProps.GetActiveTcpConnections())
29 {
30 builder.AppendFormat("{0} -> {1} - {2}{3}", connection.LocalEndPoint, connection.RemoteEndPoint, connection.State, Environment.NewLine);
31 }
32 textBox1.Text = builder.ToString();
33 }
34 }
35 }
02 using System.Collections.Generic;
03 using System.ComponentModel;
04 using System.Data;
05 using System.Drawing;
06 using System.Text;
07 using System.Windows.Forms;
08
09 namespace WindowsApplication27
10 {
11 public partial class Form1 : Form
12 {
13 public Form1()
14 {
15 InitializeComponent();
16 }
17
18 private void Form1_Load(object sender, EventArgs e)
19 {
20 timer1.Interval = 100;
21 timer1.Enabled = true;
22 }
23
24 private void timer1_Tick(object sender, EventArgs e)
25 {
26 System.Text.StringBuilder builder = new System.Text.StringBuilder();
27 System.Net.NetworkInformation.IPGlobalProperties ipProps = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties();
28 foreach (System.Net.NetworkInformation.TcpConnectionInformation connection in ipProps.GetActiveTcpConnections())
29 {
30 builder.AppendFormat("{0} -> {1} - {2}{3}", connection.LocalEndPoint, connection.RemoteEndPoint, connection.State, Environment.NewLine);
31 }
32 textBox1.Text = builder.ToString();
33 }
34 }
35 }
VB.NET程式碼
01 Public Class Form1
02
03 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
04 Timer1.Interval = 100
05 Timer1.Enabled = True
06 End Sub
07
08 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
09 Dim builder As New System.Text.StringBuilder
10 Dim ipProps As System.Net.NetworkInformation.IPGlobalProperties = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties()
11 For Each connection As System.Net.NetworkInformation.TcpConnectionInformation In ipProps.GetActiveTcpConnections
12 builder.AppendFormat("{0} -> {1} - {2}{3}", connection.LocalEndPoint, connection.RemoteEndPoint, connection.State, Environment.NewLine)
13 Next
14 TextBox1.Text = builder.ToString
15 End Sub
16 End Class
02
03 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
04 Timer1.Interval = 100
05 Timer1.Enabled = True
06 End Sub
07
08 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
09 Dim builder As New System.Text.StringBuilder
10 Dim ipProps As System.Net.NetworkInformation.IPGlobalProperties = System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties()
11 For Each connection As System.Net.NetworkInformation.TcpConnectionInformation In ipProps.GetActiveTcpConnections
12 builder.AppendFormat("{0} -> {1} - {2}{3}", connection.LocalEndPoint, connection.RemoteEndPoint, connection.State, Environment.NewLine)
13 Next
14 TextBox1.Text = builder.ToString
15 End Sub
16 End Class
執行結果
參考
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090418195852AVQ&fumcde=
範例下載