如何取得当前机器正在使用的端口列表

本文介绍了一种通过调用netstat工具并解析其输出来获取当前计算机正在使用的端口列表的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该篇文章是我于2009年6月10日通过自己编写的工具,批量从位于在博客园的博客站点(http://chenxizhang.cnblogs.com)同步而来。文章中的图片地址仍然是链接到博客园的。特此说明!

陈希章

原文地址:http://www.cnblogs.com/chenxizhang/archive/2009/05/31/1493156.html
原文标题:如何取得当前机器正在使用的端口列表
原文发表:2009/5/31 10:54:00

上一篇我讲到了如何取得可用的端口。那么,与这个相反的一个问题就是,如何取得正在使用的端口列表呢?

这个问题依然是没有什么现成的东西可用的,但对于咱来说,算不了什么大不了的问题。至少我想到一个比较土的办法,嘿嘿

1. 我们知道,要想查看当前所有的端口,可以通过netstat工具,如下

image

2. 现在的关键问题是,如何调用该工具,得到这个结果后分析得到我们要的结果

我们可以在之前的PortHelper类型中添加一个方法

public string GetPortList()
{

    ProcessStartInfo info = new ProcessStartInfo();
    info.FileName = "netstat";
    info.Arguments = "-na";
    info.CreateNoWindow = true;
    info.UseShellExecute = false;
    info.RedirectStandardOutput = true;

    Process p = new Process();
    p.StartInfo = info;
    p.Start();
    p.WaitForExit();

    StreamReader reader = p.StandardOutput;
    StringBuilder sb = new StringBuilder();
    int row = 0;
    while (!reader.EndOfStream)
    {
        string r = reader.ReadLine().Trim();
        if (row++ > 3)
        {
            sb.AppendLine(r);
        }
    }

    return sb.ToString();
}

 

3. 很快的我们就可以看得到下面这样的结果

image

怎么样,和我们手工打netstat -na命令的效果是不是很像呢?

当然,我们还可以收到这个结果之后进一步进行处理。这个问题就留给有兴趣的朋友自己去实现了

作者:陈希章
出处:http://blog.youkuaiyun.com/chen_xizhang
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值