自学内容网 自学内容网

TCP连接的时候遇到的异常(目标端口没开放)

import asyncio


async def check_port(ip, port, timeout=1):
    """
    检查目标 IP 和端口是否开放
    :param ip: 目标 IP 地址
    :param port: 目标端口
    :param timeout: 超时时间(秒)
    """
    try:
        reader, writer = await asyncio.open_connection(ip, port, limit=1024)
        print(f"Host {ip} Port {port} is OPEN")
        writer.close()
        await writer.wait_closed()
        return ip, port, True
    except Exception as e:
        print(f"Error scanning {ip}:{port} - {e}")
        return ip, port, False

if __name__ == '__main__':
    asyncio.run(check_port('10.200.0.10', 8080))

运行这段代码后,有2种情况【我在windows 11电脑尝试的】

1. 发送第一个SYN后没收到回复,隔时间 1s , 2s , 4s, 8s 重新发送4个SYN, 如果都失败,结束
可能原因:主机的端口被防火墙屏蔽(这个时候开不开该端口都一样)
在这里插入图片描述

2. 发送第一个SYN后目标主机直接返回RST, 拒绝连接,一共发送5组这样的来回,结束
可能原因:主机的端口没被防火墙屏蔽,但是上面没有运行任何服务
在这里插入图片描述


原文地址:https://blog.csdn.net/unforgetablebaby/article/details/144317456

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!