tcp syn扫描程序请教
TCP SYN扫描(亦称TCP 半连接扫描)的原理:向目标主机的一个端口发送请求连接的syn数据包,如果没有收到目标主机的syn/ack确认报文,而是RST报文,说明 此端口没有开放,如果收到了syn/ack报文,说明此端口开放的,扫描主机在收到syn/ack后不会回复自己的ACK。
我想编写代码(用Linux c)实现上述扫描,请问自己构造了带有syn的数据包发送后,如何怎样判断目标主机返回的数据包中是syn/ack,还是RST报文?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
大多数系统的实现是发送tcp syn,若端口是关闭的,目标主机应该发送RST报文吧!
tcp 头有相应的结构信息,是 flag,每一位代表不同的意思
复制代码
另外,我对上面的原理有些疑问
为何要单独考虑 RST 呢?若对方什么都不回的话不也一样代表没开放端口吗?
如果这样的话,只考虑 SYN/ACK 的回溃不就好了?
[ 本帖最后由 platinum 于 2006-10-24 17:49 编辑 ]