狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C#獲取電腦上所有打開端口的詳細(xì)連接信息

admin
2025年2月12日 9:50 本文熱度 1032

在C#中獲取電腦上所有打開端口的詳細(xì)連接信息通常涉及到網(wǎng)絡(luò)編程和系統(tǒng)級(jí)別的操作。這可以通過多種方式實(shí)現(xiàn),但最常見的方法之一是使用System.Net命名空間中的類,并結(jié)合系統(tǒng)級(jí)別的API調(diào)用。下面是一些步驟和示例代碼,幫助你獲取電腦上所有打開端口的詳細(xì)連接信息。


方法1:使用System.Net.NetworkInformation

System.Net.NetworkInformation命名空間提供了訪問網(wǎng)絡(luò)接口信息和網(wǎng)絡(luò)統(tǒng)計(jì)信息的功能。你可以使用IPGlobalProperties.GetIPGlobalProperties()來獲取當(dāng)前計(jì)算機(jī)的IP全局屬性,然后使用GetActiveTcpListeners()和GetActiveTcpConnections()方法來查看TCP連接。

示例代碼:

using System;

using System.Net;

using System.Net.Sockets;

using System.Collections.Generic;

 

class Program

{

    static void Main()

    {

        // 獲取當(dāng)前計(jì)算機(jī)的IP全局屬性

        IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();

 

        // 獲取當(dāng)前計(jì)算機(jī)的TCP監(jiān)聽端口

        var tcpListeners = ipGlobalProperties.GetActiveTcpListeners();

        Console.WriteLine("Active TCP Listeners:");

        foreach (var listener in tcpListeners)

        {

            Console.WriteLine($"Port: {listener.Port}");

        }

 

        // 獲取當(dāng)前計(jì)算機(jī)的TCP連接(需要管理員權(quán)限)

        var tcpConnections = ipGlobalProperties.GetActiveTcpConnections();

        Console.WriteLine("\nActive TCP Connections:");

        foreach (var connection in tcpConnections)

        {

            Console.WriteLine($"LocalEndPoint: {connection.LocalEndPoint}, RemoteEndPoint: {connection.RemoteEndPoint}, State: {connection.State}");

        }

    }

}



方法2:使用P/Invoke調(diào)用Windows API

如果你需要更詳細(xì)的控制或者需要訪問更多底層信息,你可以使用P/Invoke調(diào)用Windows API,如netstat命令的底層API。例如,使用netstat -ano的底層API可以讓你獲取到每個(gè)連接的PID等信息。

示例代碼(使用P/Invoke調(diào)用netstat):

using System;

using System.Diagnostics;

using System.Runtime.InteropServices;

using System.Text;

 

class Program

{

    [DllImport("iphlpapi.dll", ExactSpelling = true)]

    private static extern int SendARP(uint ip, uint mac, byte[] pa, ref uint size);

    [DllImport("iphlpapi.dll", SetLastError = true)]

    private static extern uint GetIpAddrTable(IntPtr pIPAddrTable, ref uint pSize, bool bOrder);

    [DllImport("iphlpapi.dll", SetLastError = true)]

    private static extern int GetExtendedTcpTable(IntPtr pTcpTable, ref uint dwOutBufLen, bool sort, int ipVersion, TcpTableType tableClass, uint reserved);

    private enum TcpTableType : uint { OwnerPidOnly = 5 }; // 只獲取PID信息

    private const int ERROR_INSUFFICIENT_BUFFER = 122; // 緩沖區(qū)不足錯(cuò)誤代碼

    private const int IP_ADAPTER_INFO_SIZE = 8 * 1024; // 適配器信息緩沖區(qū)大小估計(jì)值

    private const int MAX_ADAPTER_DESCRIPTION_LENGTH = 128; // 適配器描述最大長度

    private const int MAX_ADAPTER_NAME_LENGTH = 256; // 適配器名稱最大長度

    private const int MAX_ADAPTER_ADDRESS_LENGTH = 8; // 適配器地址最大長度(以字節(jié)為單位)

    private const int GAA_FLAG_INCLUDE_PREFIX = 16; // 標(biāo)志位:包含前綴長度信息

    private const int MIB_TCP_STATE_LISTENING = 2; // TCP狀態(tài):監(jiān)聽狀態(tài)

    private const int MIB_TCP_STATE_ESTABLISHED = 4; // TCP狀態(tài):已建立連接狀態(tài)

    private const int MIB_TCP_STATE_CLOSE_WAIT = 8; // TCP狀態(tài):關(guān)閉等待狀態(tài)等...

    // 其他必要的結(jié)構(gòu)和常量定義...

}

注意:直接使用P/Invoke調(diào)用底層API相對(duì)復(fù)雜且容易出錯(cuò),特別是涉及到權(quán)限和網(wǎng)絡(luò)編程的細(xì)節(jié)問題。通常建議先嘗試使用System.Net.NetworkInformation類,如果需要更詳細(xì)的信息再考慮使用P/Invoke。此外,獲取某些信息可能需要管理員權(quán)限。對(duì)于大多數(shù)應(yīng)用場景,直接使用System.Net.NetworkInformation應(yīng)該已經(jīng)足夠。


相關(guān)文檔:

C#獲取電腦上所有打開端口的詳細(xì)連接信息[1]
  http://29190.oa22.cn

【C#】如何判斷當(dāng)前是否開啟了遠(yuǎn)程桌面連接[4927]
  http://16624.oa22.cn

C#如何判斷Windows Server遠(yuǎn)程桌面有異常登錄,并獲知當(dāng)前登錄用戶名?[3550]
  http://16722.oa22.cn


該文章在 2025/2/12 10:11:15 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved