问题描述:

校验某个端口是否被使用(80端口是否被使用):

1、获取本机监听的地址列表中,协议类型为tcp与tcp6的端口;

(sudo netstat -nl | grep tcp  | awk '{print $4}' | awk '{split($0,a,":");print a[2]a[4]}')

2、将获取到的列表中的值,与要被对比的监听的值(例如80值)向比较。

 代码实现:

#include <stdio.h>
#include <string.h>#define MAX_BUF    1024*2*2
#define CHECK 1#define SUCCESS  0
#define PARAMETER_VALUE_ERROR 101          //参数值错误,不符合要求,如有边界值或选项参数/******************************************************************
简述:获取本机的监听端口列表
参数:void
返回值:监听的端口列表,并以逗号分割,失败返回NULL
备注:
*******************************************************************/
static int _authservice_Check_port(char *pcPort)
{int i = 0;    FILE *pf = NULL;char szListen[MAX_BUF] = {0};/* 使用popen获取本机地址 */pf = popen("sudo netstat -nl | grep tcp  | awk '{print $4}' | awk '{split($0,a,\":\");print a[2]a[4]}'", "r");if(NULL == pf){return CHECK;}while(NULL != fgets(szListen, sizeof(szListen), pf)){    szListen[strlen(szListen) - 1] = '\0';printf("##%s##\n", szListen);if(!strncmp(pcPort, szListen, sizeof(pcPort))){return PARAMETER_VALUE_ERROR;}}return SUCCESS;
}int main()
{//端口的校验,0~65535     且不能有使用过的端口if(SUCCESS != (_authservice_Check_port("80"))){        return PARAMETER_VALUE_ERROR;}else{printf("Has not been used!\n");  //没有被使用}return SUCCESS;
}

结果显示:

[root@J01051386 test]# gcc link1.c
[root@J01051386 test]# ./a.out
##111##
##48145##
##22##
##631##
##25##
##902##
##111##
##22##
##631##
##25##
##43260##
##902##
Has not been used!

其他:

链表实现的方式见:

netstat获取本机监听的地址列表 —— *链表实现*(sudo netstat -nl | grep -w tcp | awk '{print $4}')

注:(链表实现中,只能匹配tcp不可匹配tcp6的端口)

netstat获取本机监听的地址列表 —— *awk与splite命令实现*(sudo netstat -nl | grep tcp……)相关推荐

  1. netstat获取本机监听的地址列表 —— *链表实现*(sudo netstat -nl | grep -w tcp | awk '{print $4}')

    问题描述: 获取本机监听的地址列表中,协议类型为tcp的端口.(sudo netstat -nl | grep -w tcp) 知识填充: 在linux一般使用netstat 来查看系统端口使用情况步 ...

  2. Linux的ipv6不监听端口,netstat查看服务端口监听在ipv6但是通过ipv4地址可正常访问...

    在Linux系统中,会发现一个有趣的现象,通过 netstat 查看监听的服务端口时,发现有些服务 Proto(protocol协议) 项只显示了 tcp6(代表监听服务端口在IPv6协议), 没有 ...

  3. Oracle修改监听IP地址

    oracle 11g断网安装时,没有检测net的功能,所以安装完后,netstat -an 发现自动监听的是127.0.0.1:1521,这样安装完成后,其他的主机根本无法连接,是什么原因呢? 排错后 ...

  4. uniapp获取通知栏内容 监听通知栏信息

    uniapp获取通知栏内容 监听通知栏信息 简单介绍 插件地址 简单介绍 采用安卓原生SDK开发出来的一款安卓uniapp的插件,此插件只支持安卓,ios不支持. 监听通知栏内容,获取通知栏消息 安卓 ...

  5. python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例

    这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...

  6. 获取运行端口监听的用户身份auth-owner

    获取运行端口监听的用户身份auth-owner Windows系统提供工作在TCP 113端口的授权服务(Authentication Service),用来判断TCP连接的用户.Nmap的auth- ...

  7. 获取本机的真实IP地址

    Code: import java.net.InetAddress; import java.net.UnknownHostException; /** * 获取本机的真实IP地址.<br> ...

  8. c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存...

    我们在利用C#开发桌面程序(Winform)程序的时候, 经常需要获取一些跟系统相关的信息, 以下这些代码获取能有些用处. c#中如何获取本机用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统 ...

  9. netstat linux查看监听端口号,linux用netstat查看服务及监听端口

    [root@localhost ~]# netstat -nlp netstat命令各个参数说明如下: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接 ...

最新文章

  1. 2022-2028年中国橡胶板的制造行业发展战略规划及投资方向研究报告
  2. 第166天:canvas绘制饼状图动画
  3. ​linux 系统出现Give root password for maintenance 问题
  4. PHP基础系列之正则表达式(一)
  5. delphi报列表索引越界怎么处理_Python入门第3课:列表元组,看这一篇够了 | 原创...
  6. Android画板控件,可以写字,签名,画画并生成图片
  7. 武大计算机几天出录取结果,录取大概要几天 多久录取结果出来
  8. 基于跨模态预测的多模态情感分类
  9. java jdk学习_Java学习第一步:JDK环境搭建(纯小白向)
  10. cookie注入原理详解(一)
  11. SQL Server 2008 存储结构之DCM、BCM
  12. error: invalid argument ‘-std=gnu++98‘ not allowed with ‘C‘
  13. java控制台进度_java进度条:控制台输出百分比示例代码
  14. 软考-嵌入式系统设计师-笔记:历年专业英语题
  15. new115.com dz.html,超实用的HTML代码段(赵荣娇)
  16. jquery H5 好用的编辑器umeditor
  17. 备份恢复Lesson 08. Using RMAN-Encrypted Backups
  18. 在局域网访问 XAMPP 服务器本地主机
  19. 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案...
  20. iOS-Xcode8新特性(Code signing is required for product type 'Application' in SDK 'iOS 10.0')

热门文章

  1. 网络编程学习笔记(getsockopt和setsockopt函数)
  2. 第一课 计算机组成原理(哈工大)
  3. 如何查看某个端口被谁占用
  4. 基于Flume的美团日志收集系统(二)改进和优化
  5. 新一代(New Generation)测试框架TestNG
  6. [算法] 求环形数组中和值最大子段
  7. [转]我倡导无政府主义编程—Fred George访谈录
  8. 世界-中国-省-市-县 天气预报
  9. 用linux搭建ntp服务,使用linux配置NTP Server
  10. leetcode算法题--LRU缓存机制