TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!
  1. 首页
  2. 自动化运维
  3. 正文

怎么用Python来探测端口的存活

2024年4月16日 1162点热度 0人点赞 0条评论

探测端口的存活通常是在网络管理和安全领域中进行的重要任务之一。主要原因如下:

  1. 网络管理:探测端口的存活可以帮助网络管理员监视网络设备和服务的运行状态。通过定期检查特定端口的存活状态,管理员可以确保网络中的关键服务正常运行,及时发现并解决可能存在的故障或异常情况。
  2. 服务发现:对端口的存活进行探测还可以帮助发现网络中运行的服务。通过扫描主机的开放端口,可以识别出运行在这些端口上的服务类型和版本信息,从而帮助管理员了解网络的拓扑结构和服务配置情况。
  3. 安全审计:定期检测端口的存活状态也是安全审计的重要手段之一。安全人员可以通过扫描网络上的端口,识别出可能存在的安全漏洞和风险,及时采取措施加固和修复漏洞,提高网络的安全性。
  4. 入侵检测:探测端口的存活还可以用于入侵检测。通过监视网络上的端口活动情况,可以及时发现恶意攻击者对网络的入侵行为,从而采取相应的防御措施,保护网络的安全。
标题内容

话不多说,直接上代码

python探测端口存活

探测单个端口

 # -*- coding: utf-8 -*-
 # @Time    : 2024/04/16 16:51
 # @Author  : TangHao
 ​
 # flag=1 正常; flag=0  异常;
 import socket
 import sys
 ​
 def check_port(port):
     try:
         # 创建一个套接字对象
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         # 设置超时时间为1秒
         s.settimeout(1)
         # 尝试连接端口
         s.connect(('localhost', port))
         # 关闭套接字
         s.close()
         return 1
     except Exception as e:
         return 0
 ​
 if __name__ == "__main__":
     if len(sys.argv) != 2:
         print("Usage: python port_monitor.py <port>")
         sys.exit(1)
 ​
     port = int(sys.argv[1])
 ​
     if check_port(port):
         print(f"Port {port} is open.")
     else:
         print(f"Port {port} is closed.")

运行效果

探测多个端口

 # -*- coding: utf-8 -*-
 # @Time    : 2024/04/16 22:07
 # @Author  : TangHao
 ​
 import socket
 import sys
 ​
 # flag=1 正常; flag=0  异常;
 # 定义检查端口列表
 ports = []
 def check_port(ports):
     con = []
     discon = []
     for port in ports:
         dest = int(port)
         try:
             s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
             s.settimeout(1)
             s.connect(('localhost', dest))
             s.close()
             con.append(dest)
         except Exception as e:
             discon.append(dest)
     if len(con) != len(ports):
         return 0 ,"Port {} is closed".format(discon)
     else:
         return 1,"Port {} is open;".format(con)
 ​
 if __name__ == "__main__":
     if len(sys.argv) < 2:
         print("Usage: python port_monitor.py <port>,各端口用空格隔开: python port_monitor.py 22 3306")
         sys.exit(1)
     # 获取命令行参数列表
     args = sys.argv
     # 第一个参数是脚本名称,从第二个参数开始是传入的参数
     for i, arg in enumerate(args[1:], start=1):
         ports.append(arg)
     #ports = ["3306",'22', '53']
     check = check_port(ports)
     print(check)
 ​

运行结果

标签: 暂无
最后更新:2024年4月16日

tanghao946

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • python探测端口存活
    • 探测单个端口
    • 探测多个端口

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号