自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# 如何判斷某個(gè) TCP 端口是否被占用?

開(kāi)發(fā) 前端
在C#中,可以使用System.Net.NetworkInformation命名空間下的IPGlobalProperties類和TcpConnectionInformation類來(lái)判斷某個(gè)TCP端口是否被占用。

在C#中使用TcpClient或者其他通用的方式建立的Socket,該如何判斷這個(gè)端口是否被占用?比如下面的代碼:

TcpClient tc = new TcpClient(ip,port);

在C#中,可以使用System.Net.NetworkInformation命名空間下的IPGlobalProperties類和TcpConnectionInformation類來(lái)判斷某個(gè)TCP端口是否被占用:

using System.Net.NetworkInformation;
int port = 80;
if(IsPortInUse(port)){
    Console.WriteLine($"{port} 端口被占用!");
}else{
     Console.WriteLine($"{port} 端口未被占用!");
}
Console.ReadLine();

bool IsPortInUse(int port)
{
    IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
    TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();

    foreach (TcpConnectionInformation connection in connections)
    {
        if (connection.LocalEndPoint.Port == port)
        {
            // 端口已被占用
            return true;
        }
    }

    // 端口未被占用
    return false;
}
80 端口未被占用!

在上述示例中,IsPortInUse方法接收一個(gè)整數(shù)參數(shù)表示端口號(hào)。它通過(guò)IPGlobalProperties.GetIPGlobalProperties方法獲取當(dāng)前計(jì)算機(jī)的網(wǎng)絡(luò)連接信息,然后使用GetActiveTcpConnections方法獲取所有活動(dòng)的TCP連接信息。接著,使用循環(huán)遍歷每個(gè)TCP連接信息,判斷本地端點(diǎn)的端口號(hào)是否與傳入的端口號(hào)相同。如果找到匹配的端口號(hào),則表示端口已被占用;否則,表示端口未被占用。

需要注意的是,為了執(zhí)行此操作,可能需要管理員權(quán)限或運(yùn)行在適當(dāng)?shù)牟僮飨到y(tǒng)上。此外,還要確保沒(méi)有其他進(jìn)程在占用同一端口,因?yàn)門(mén)CP連接僅能檢測(cè)到已建立的連接而無(wú)法檢測(cè)到監(jiān)聽(tīng)狀態(tài)的端口。

想要檢測(cè)監(jiān)聽(tīng)狀態(tài)的端口,可以使用System.Net.NetworkInformation命名空間下的IPGlobalProperties類和IPEndPoint類來(lái)獲取所有監(jiān)聽(tīng)的TCP端口。

using System.Net;
using System.Net.NetworkInformation;

public void GetListeningPorts()
{
    IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
    IPEndPoint[] endpoints = properties.GetActiveTcpListeners();

    foreach (IPEndPoint endpoint in endpoints)
    {
        Console.WriteLine($"監(jiān)聽(tīng)狀態(tài)的端口:{endpoint.Port}");
    }
}
監(jiān)聽(tīng)狀態(tài)的端口:80
監(jiān)聽(tīng)狀態(tài)的端口:135
監(jiān)聽(tīng)狀態(tài)的端口:445
監(jiān)聽(tīng)狀態(tài)的端口:1433
監(jiān)聽(tīng)狀態(tài)的端口:2383
監(jiān)聽(tīng)狀態(tài)的端口:3306
監(jiān)聽(tīng)狀態(tài)的端口:3389
監(jiān)聽(tīng)狀態(tài)的端口:5040
....

在命令提示符(cmd)中,可以使用 netstat 命令來(lái)列出占用的端口

netstat -ano | findstr LISTENING

這個(gè)命令會(huì)列出所有正在監(jiān)聽(tīng)(被占用)的端口,并顯示與每個(gè)端口關(guān)聯(lián)的進(jìn)程標(biāo)識(shí)符(PID)。

這個(gè)命令的部分:

  • netstat:用于顯示網(wǎng)絡(luò)狀態(tài)和連接信息的命令。
  • -ano:參數(shù)選項(xiàng),a 用于顯示所有連接和偵聽(tīng)端口,n 用于以數(shù)字格式顯示端口和地址,o 用于顯示關(guān)聯(lián)的進(jìn)程標(biāo)識(shí)符。
  • |:管道操作符,將 netstat 的輸出結(jié)果傳遞給下一個(gè)命令。
  • findstr:用于搜索指定的字符串或文本的命令。
  • LISTENING:要搜索的字符串,表示只搜索正在監(jiān)聽(tīng)的端口。

執(zhí)行上述命令后,將看到正在監(jiān)聽(tīng)的端口列表以及與它們關(guān)聯(lián)的進(jìn)程的 PID??梢愿鶕?jù)需要查找特定的端口或進(jìn)一步處理輸出結(jié)果

C:\Users\Admin>netstat -ano | findstr LISTENING
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       848
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       4956
  TCP    0.0.0.0:2383           0.0.0.0:0              LISTENING       5200
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       4280
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1204
  TCP    0.0.0.0:5040           0.0.0.0:0              LISTENING       6424
  TCP    0.0.0.0:7680           0.0.0.0:0              LISTENING       8344
  TCP    0.0.0.0:49664          0.0.0.0:0              LISTENING       308
  TCP    0.0.0.0:49665          0.0.0.0:0              LISTENING       932
  TCP    0.0.0.0:49666          0.0.0.0:0              LISTENING       1512
  TCP    0.0.0.0:49667          0.0.0.0:0              LISTENING       1364
  TCP    0.0.0.0:49668          0.0.0.0:0              LISTENING       2484
  TCP    0.0.0.0:49669          0.0.0.0:0              LISTENING       3440
  TCP    0.0.0.0:49673          0.0.0.0:0              LISTENING       68
  TCP    0.0.0.0:49706          0.0.0.0:0              LISTENING       4956
  TCP    0.0.0.0:50128          0.0.0.0:0              LISTENING       4
  TCP    127.0.0.1:22           0.0.0.0:0              LISTENING       8960
  TCP    127.0.0.1:81           0.0.0.0:0              LISTENING       8960
  TCP    127.0.0.1:443          0.0.0.0:0              LISTENING       8960
  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       4956
  TCP    127.0.0.1:4012         0.0.0.0:0              LISTENING       4180
  TCP    127.0.0.1:4013         0.0.0.0:0              LISTENING       4180
  TCP    127.0.0.1:4301         0.0.0.0:0              LISTENING       8008
  TCP    127.0.0.1:5533         0.0.0.0:0              LISTENING       18928
  TCP    127.0.0.1:9210         0.0.0.0:0              LISTENING       6924
  TCP    127.0.0.1:9418         0.0.0.0:0              LISTENING       8960
  TCP    127.0.0.1:49672        0.0.0.0:0              LISTENING       3804
  TCP    127.0.0.1:57178        0.0.0.0:0              LISTENING       2600
  TCP    127.0.0.1:57335        0.0.0.0:0              LISTENING       17900
  TCP    192.168.1.108:139      0.0.0.0:0              LISTENING       4
  TCP    [::]:80                [::]:0                 LISTENING       4
  TCP    [::]:135               [::]:0                 LISTENING       848
  TCP    [::]:445               [::]:0                 LISTENING       4
  TCP    [::]:1433              [::]:0                 LISTENING       4956
  TCP    [::]:2383              [::]:0                 LISTENING       5200
  TCP    [::]:3306              [::]:0                 LISTENING       4280
  TCP    [::]:3389              [::]:0                 LISTENING       1204
  TCP    [::]:7680              [::]:0                 LISTENING       8344
  TCP    [::]:49664             [::]:0                 LISTENING       308
  TCP    [::]:49665             [::]:0                 LISTENING       932
  TCP    [::]:49666             [::]:0                 LISTENING       1512
  TCP    [::]:49667             [::]:0                 LISTENING       1364
  TCP    [::]:49668             [::]:0                 LISTENING       2484
  TCP    [::]:49669             [::]:0                 LISTENING       3440
  TCP    [::]:49673             [::]:0                 LISTENING       68
  TCP    [::]:49706             [::]:0                 LISTENING       4956
  TCP    [::]:50128             [::]:0                 LISTENING       4
  TCP    [::1]:22               [::]:0                 LISTENING       8960
  TCP    [::1]:81               [::]:0                 LISTENING       8960
  TCP    [::1]:443              [::]:0                 LISTENING       8960
  TCP    [::1]:1434             [::]:0                 LISTENING       4956
  TCP    [::1]:9418             [::]:0                 LISTENING       8960
責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2017-05-26 12:59:48

Linux端口

2021-10-19 11:23:02

Linux端口隨機(jī)

2024-10-09 07:59:10

C#接口信息

2018-09-21 09:03:34

windows服務(wù)器80端口

2017-01-05 14:42:49

LinuxUnix服務(wù)器

2009-08-13 16:27:07

C#基于TCP協(xié)議

2019-06-26 20:10:38

LinuxWindows計(jì)算機(jī)端口

2024-04-02 09:26:07

C#中文數(shù)字編程語(yǔ)言

2009-08-24 17:20:13

C#網(wǎng)絡(luò)通信TCP連接

2010-09-13 15:55:43

制作端口掃描器

2022-11-07 19:08:28

transform屬性瀏覽器

2013-06-27 14:41:40

TCP端口TCP

2012-09-24 15:13:50

C#網(wǎng)絡(luò)協(xié)議TCP

2021-12-13 06:56:46

TCP孤兒連接

2011-01-10 10:50:40

windowsnetstasklist

2009-08-07 13:38:18

C#文件相對(duì)路徑

2009-08-21 15:22:56

端口偵聽(tīng)

2009-08-21 09:09:05

C#字符串

2009-08-21 14:47:39

C#網(wǎng)絡(luò)編程

2022-04-05 14:13:56

Linux端口系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)