【问题标题】:sockets - discover firewalled ports套接字 - 发现防火墙端口
【发布时间】:2010-01-30 12:47:50
【问题描述】:

我正在阅读 nmap 源代码,因为我想了解它如何发现某些端口被过滤或防火墙。我对 c 中的套接字有一些经验,并且我已经构建了简单的端口扫描器,这很容易 - 如果连接成功,则端口打开,否则关闭(因为返回 RST)。但如果使用防火墙端口,它们不会返回 RST 数据包,而我的端口扫描器只会永远“等待”。

如果有人对此主题有经验,请指出实际扫描和端口状态确定发生的 nmap 代码部分,或者至少告诉我是否有任何其他代码可以处理这个问题。

【问题讨论】:

    标签: c sockets firewall network-scan


    【解决方案1】:

    使用异步套接字 API 调用(即不要等待建立连接,而是并行尝试下一个端口/地址)并定义合理的超时时间(例如,如果在一分钟后没有建立连接可以认为它已过滤)。

    【讨论】:

    • 只是补充一点,防火墙可以对不想要的数据包选择一些操作。 “Drop”是最常见的,因为它是最少的工作。但它可以回复 RST,或者它甚至可以将你自己的数据包扔给你,不管它会做什么。
    猜你喜欢
    • 1970-01-01
    • 2015-02-03
    • 2015-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    相关资源
    最近更新 更多