我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python检查端口是否打开(七种方法)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python检查端口是否打开(七种方法)

sock.connect_ex

使用socket模块的connect_ex来判断端口是否打开,如果返回值是0表示连接成功,端口打开,否则端口关闭。

import socketdef check_port(ip, port):      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)      sock.settimeout(5)        try:          result = sock.connect_ex((ip, port))          if result == 0:              return True        else:              return False    except Exception as e:          print(f"错误: {str(e)}")      finally:          sock.close()        host = 'localhost'port = 80if check_port(host, port):    print(f'The port {port} on {host} is open.')else:    print(f'The port {port} on {host} is closed.')

sock.connect

使用socket模块的connect来判断端口是否打开,如果未发生异常表示连接成功,端口打开,否则端口关闭。

import socketdef check_port(host, port):    try:        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)        sock.settimeout(1)        sock.connect((host, port))        sock.close()        return True    except:        return False    finally:          sock.close()

telnet命令

调用telnet命令来判断端口是否打开。
使用telnet命令:在大多数操作系统中,telnet命令可以用于测试端口是否开放。你可以在命令行中输入"telnet <端口>",如果端口是开放的,则telnet会连接成功并返回一些信息。否则,它将返回一个错误消息。

import os    def check_port(ip, port):      result = os.system(f"telnet {ip} {port} > /dev/null 2>&1")      if result == 0:          print(f"端口 {port} 是开放的")      else:          print(f"端口 {port} 是关闭的")

nc命令

使用nc命令(也称为netcat):nc命令是一个强大的工具,可以用于测试端口是否开放。你可以在命令行中输入"nc -zv <端口>",如果端口是开放的,则nc会连接成功并返回一些信息。否则,它将返回一个错误消息。

import os    def check_port(ip, port):      result = os.system(f"nc -zv {ip} {port} > /dev/null 2>&1")      if result == 0:          print(f"端口 {port} 是开放的")      else:          print(f"端口 {port} 是关闭的")

ping命令

使用ping命令:ping命令可以用于测试网络连接是否畅通,也可以用于检查端口是否开放。在命令行中输入"ping -n <端口>",如果端口是开放的,则ping会返回一些信息。否则,它将返回一个错误消息。

import os    def check_port(ip, port):      result = os.system(f"ping {ip} -n {port} > /dev/null 2>&1")      if result == 0:          print(f"端口 {port} 是开放的")      else:          print(f"端口 {port} 是关闭的")

注意:如果目标服务器禁用ping,就无法判断出来了。

requests检查http端口

requests库是Python的一个HTTP库,可以用来发送所有类型的HTTP请求,包括GET、POST、PUT、DELETE等。它也可以用来处理cookies、会话、重定向等。

要检查一个端口是否开放,我们通常会使用requests库来尝试向该端口发送HTTP请求,并查看是否能够成功连接。以下是一个简单的示例:

import requests    def check_port(ip, port):      try:          response = requests.get(f"http://{ip}:{port}")          if response.status_code == 200:              print(f"端口 {port} 是开放的")          else:              print(f"端口 {port} 是关闭的")      except requests.exceptions.ConnectionError:          print(f"端口 {port} 是关闭的")

在上述代码中,我们使用requests.get方法向指定的IP地址和端口发送GET请求。如果请求成功,并且返回的状态码为200,则表示该端口是开放的。如果发生requests.exceptions.ConnectionError异常,则表示该端口是关闭的。requests检查端口方法仅适用于HTTP和HTTPS端口。

Scapy

Scapy是一个强大的Python库,用于创建、解析、发送、接收并解析网络数据包。使用Scapy来检查端口是否开放。

from scapy.all import *    def check_port(ip, port):      # 构造一个ICMP数据包,并发送到目标IP地址和端口      packet = IP(dst=ip) / ICMP() / Raw(load=str(port))      # 发送数据包并获取响应      response = sr1(packet, timeout=1)      # 检查响应是否为ICMP错误类型      if response is None or response.type != ICMP.DEST_UNREACH:          print(f"端口 {port} 是开放的")      else:          print(f"端口 {port} 是关闭的")    # 测试函数  check_port('127.0.0.1', 80)

我们使用Scapy构造了一个ICMP数据包,并将目标端口作为负载包含在其中。然后,我们发送该数据包并等待响应。如果响应是ICMP错误类型(目的地不可达),则表示端口是关闭的。否则,表示端口是开放的。这种方法只适用于ICMP端口扫描。对于其他类型的端口扫描(如TCP或UDP端口扫描),需要使用不同的协议和字段。

来源地址:https://blog.csdn.net/lilongsy/article/details/132145421

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python检查端口是否打开(七种方法)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux 检测远程端口是否打开方法总结

检测远程端口是否打开 常用telnet 110.101.101.101 80方式测试远程主机端口是否打开。 除此之外还可以使用: 方法1.nmap ip -p port 测试端口 nmap ip 显示全部打开的端口 根据显示close/op
2022-06-04

linux怎么检测udp端口是否打开

要检测UDP端口是否打开,可以使用以下命令:1. 使用`netstat`命令:运行以下命令可以列出当前打开的UDP端口及其相关信息。```netstat -anu```在输出结果中,查找您想要检测的特定端口号,如果在"Local Addre
2023-08-19

linux如何检测远程端口是否打开

这篇文章主要介绍linux如何检测远程端口是否打开,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 检测远程端口是否打开常用telnet 110.101.101.101 80方式测试远程主机端口是否打开。 除此之外还可
2023-06-09

windows怎么查看端口是否打开

windows查看端口是否打开方法:1、使用命令提示符或PowerShell;2、使用防火墙设置;3、使用第三方工具。在Windows操作系统中,要查看端口是否打开可以使用不同的方法。以下是其中常用的几种方法:1. 使用命令提示符或Powe
2023-07-26

win7如何查看端口是否打开

在Windows 7上,您可以通过以下几种方法来查看端口是否打开:1. 使用命令提示符:按下Win + R键打开运行对话框,输入"cmd"并按下Enter键打开命令提示符窗口。在命令提示符中输入"netstat -an"命令,并按下Ente
2023-09-01

linux如何查看1433端口是否打开

这篇文章主要介绍“linux如何查看1433端口是否打开”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux如何查看1433端口是否打开”文章能帮助大家解决问题。查看方法:1、利用lsof命令,
2023-07-02

linux查看端口是否开放的方法总结

方法一:使用lsof命令 我们可以使用lsof命令来检查某一端口是否开放,基本语法如下:lsof -i:端口号如果没有任何输出则说明没有开启该端口号 下图以80端口和53端口为例,检查80端口和53端口是VrtOwcleRd否开放也
2022-06-04

如何使用nc命令检查Linux系统远程端口是否打开

小编给大家分享一下如何使用nc命令检查Linux系统远程端口是否打开,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!端口是与 Linux 操作系统上的应用或进程的通
2023-06-16

sage x3连接问题---如何检查本地计算机端口是否打开

您是否曾经遇到过X3的连接问题,并且需要一种快速的方法来检查服务器上是否打开了正确的端口而又无法访问服务器.首先是Telnet。由于此实用程序默认情况下处于禁用状态,因此在我们深入研究并开始检查服务器上的端口之前,需要先启用它。要通过GUI
2023-06-05

Linux下怎么查看远程端口是否打开

这篇文章将为大家详细讲解有关Linux下怎么查看远程端口是否打开,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在本指南中,我们将向你展示如何使用简单的 netcat (简称 nc)命令来确定远程主机上的端
2023-06-28

查看远程 Linux 系统中某个端口是否开启的三种方法

这是一个很重要的话题,不仅对 linux 管理员而言,对于我们大家而言也非常有帮助。我的意思是说对于工作在 IT 基础设施行业的用户来说,了解这个话题也是非常有用的。他们需要在执行下一步操作前,检查 Linux 服务器上某个端口是否开启。
2022-06-04

python批量telnet检测IP地址的端口是否开放

本文主要介绍了python批量telnet检测IP地址的端口是否开放,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-16

linux中怎么查看对方端口是否开放

您可以使用telnet、nc(netcat)或nmap工具来检查远程主机的端口是否开放。使用telnet命令:telnet是一个网络协议,可以在远程主机之间提供双向交互式文本导向传输服务。您可以使用以下命令来检查远程主机的端口是否开放:t
linux中怎么查看对方端口是否开放
2024-03-12

Python查看远程主机端口是否开放以及

无论是选择Python还是选择Bash Shell都可以很容易检测远程主机端口是否开放,下面的Python例子纯属锦上添花,仅供参考!  源码可参见Github:https://raw.githubusercontent.com/DingG
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录