顯示出目前網際網路連線狀態,類似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
}
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
}
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
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
執行結果
參考
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20090418195852AVQ&fumcde=
範例下載
using