EnumPorts函数枚举计算端口

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//---------------------------------------------------------------------------  
#include <windows>  
#include <winspool.h>  
#pragma hdrstop  
//---------------------------------------------------------------------------  
#pragma argsused  
#include <stdio.h>  
int  main( int  argc,  char * argv[])  
{  
       const  LPTSTR  pName = NULL;     // 此处为空,就是本机  
       const  DWORD  Level = 2;         // 指定端口类型结构体,即PORT_INFO_2  
       LPBYTE  port=0;          // 接收端口信息结构体数组指针  
       DWORD   pcbNeeded=0;     // 缓冲区字节指针(必需)  
       DWORD   pcReturned=0;    // 返回结果PORT_INFO_* 结构体缓冲区数量  
   
       if  (EnumPorts(NULL,Level,port,0,&pcbNeeded,&pcReturned))  
       {  
           return  0; //同一函数,第一次执行获取所需缓冲区大小pcbNeeded  
       }  
       port =  new  BYTE [pcbNeeded];  
       if  (!EnumPorts(pName,Level,port,pcbNeeded,&pcbNeeded,&pcReturned))  
       {  
           return  0; //同一函数,第二次执行获取端口个数pcReturned  
       }  
   
       PORT_INFO_2  ArrPort[100] = {0};  
       memcpy (ArrPort,port,pcbNeeded); //取出端口信息放入数组  
   
       for ( int  i=0;i<pcReturned;i++)  
       {  
           printf ( "%s \r\n" ,ArrPort[i].pPortName);  //返回端口名称  
       }  
       delete  port;  
   
       getchar ();  
       return  0;  
}  
//---------------------------------------------------------------------------

wKioL1nB-OGgLMPIAABHFhQVWn0902.jpg-wh_50











本文转自Chinayu201451CTO博客,原文链接:http://blog.51cto.com/9233403/1967108 ,如需转载请自行联系原作者



相关文章
|
数据安全/隐私保护
云虚拟主机wordpress发送邮件,解决25端口和fsockopen函数问题
最近在阿里云的云虚拟主机上用wordpress搭建了一个站点,搭建好之后发现无法发送邮件。 通过查资料发现云虚拟主机默认封锁了25端口,于是尝试使用第三方SMTP通过465端口发送,wordpress中有现有的插件,安装了使用人数最多的WP Mail SMTP,在插件的设置中填好各项信息,邮件程序选择“其他SMTP”,SMTP端口填465,加密选SSL/TLS,其他信息可在邮件服务商(如阿里云邮件服务、QQ邮箱、163邮箱等)的设置中找到(注意密码可能并非邮箱登录密码而是另外的授权码)。
3294 1
|
IDE Linux 开发工具
IO端口和IO内存的区别及分别使用的函数接口
每个外设都是通过读写其寄存器来控制的。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种CPU没有专门用于设备I/O的指令。
1645 0
|
4月前
|
Ubuntu 关系型数据库 MySQL
百度搜索:蓝易云【ubuntu20.4服务器安装mysql社区版并开放3306端口】
现在,你已经在Ubuntu 20.04服务器上成功安装了MySQL社区版,并且已经开放了3306端口,可以通过该端口访问MySQL服务器了。请确保在生产环境中设置安全措施,例如设置强密码、限制访问等,以保护数据库的安全性。
94 2
|
3月前
|
Java Nacos Docker
在集成nacos时,端口9848报错但服务器的这个端口是开放的
在集成nacos时,端口9848报错但服务器的这个端口是开放的【1月更文挑战第14天】【1月更文挑战第67篇】
207 1
|
6月前
|
网络安全 数据安全/隐私保护
百度搜索:蓝易云【多个端口怎么运行SSH服务器?】
记得替换 `username`为你的用户名,`your_server_ip`为你的服务器IP地址。根据需要,可以添加其他端口并进行相应的配置。
84 0
|
1月前
|
安全 Windows
服务器中如何检查端口是否开放
服务器中如何检查端口是否开放
|
6月前
|
网络协议 Linux 数据安全/隐私保护
如何在Windows本地快速搭建SFTP文件服务器,并通过端口映射实现公网远程访问
如何在Windows本地快速搭建SFTP文件服务器,并通过端口映射实现公网远程访问
|
8月前
|
小程序 Java 应用服务中间件
云服务器上安装配置tomcat并在Tomcat上放置自己写入的一个小程序并添加外网访问端口的教程(超级详细版)
云服务器上安装配置tomcat并在Tomcat上放置自己写入的一个小程序并添加外网访问端口的教程(超级详细版)
155 0
|
7月前
|
Ubuntu 安全 Shell
Ubuntu服务器安全性提升:修改SSH默认端口号
在Ubuntu服务器上,SSH(Secure Shell)是一种至关重要的远程连接工具。它提供了一种安全的方式来远程连接和管理计算机系统,通过加密通信来确保数据的保密性和完整性。SSH协议广泛用于计算机网络中,用于远程管理、文件传输和安全通信等任务。然而,SSH默认使用的端口号是22,这也是黑客们常常尝试入侵的目标之一。为了提高服务器的安全性,我们通常建议修改SSH的默认端口号,以减少未经授权的访问和潜在的风险。接下来,我们将详细介绍如何在Ubuntu上执行这一关键操作。
233 4
Ubuntu服务器安全性提升:修改SSH默认端口号
|
2月前
|
存储 网络协议 Ubuntu
Linux环境下SVN服务器的搭建与公网访问:使用cpolar端口映射的实现方法
由于文档资料越来越多,将所有资料都存放在自己的电脑上容易混淆,并且也不利于分享。这种情况下,考虑将资料上传SVN统一管理,这样一来其他人也能很方便的查略各种资料。