Python之TCP端口扫描

本文介绍了Python中TCP端口扫描的原理和不同类型的扫描方式,包括SYN、NULL、FIN和XMAS扫描。文章还探讨了扫描器的设计思路,强调了多线程扫描时应注意的加锁问题,并列举了涉及的Python模块如optparse和socket。最后提到了程序代码的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 TCP端口及服务扫描器的设计

在学习完《Python绝技》一章后,认真的总结下笔记。

 常见的端口扫描是基于TCP三次握手或者是四次挥手过程,常见的是发送一个TCP syn包到指定主机的指定端口,根据返回的结果判断该端口是否开放。

1. TCP端口扫描根据不同的发包可以分为:

 (1)TCP SYN扫描:也称半开放扫描,该扫描类型发送一个SYN的TCP链接数据包等待响应,当返回RST数据包表示端

口关闭,返回ACK表示端口开放。

 (2)TCP NULL扫描:TCP空扫描设置TCP的标志头为零,如果返回一个RST数据包则表示这个端口是关闭的。

 (3)TCP FIN扫描:TCP FIN扫描发送一个FIN数据包,请求关闭链接,等待一个个圆满的终止,如果返回RST数据包则

表示该端口是关闭的。

 (4)TCP XMAS扫描:TCP XSMAS扫描设置PSH,FIN和URG TCP的标志位,如果返回RST数据包则表示这个端口是关

闭的。

2.扫描器设计思路:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值