【问题标题】:Can i collect HTTP traffic with ruby using sockets?我可以使用套接字通过 ruby​​ 收集 HTTP 流量吗?
【发布时间】:2016-02-09 20:32:18
【问题描述】:

所以,我最近一直在使用套接字,我想知道有没有办法通过套接字检索 HTTP 数据(正在从我的系统发送和接收)?

我查看了 TCPServer 等,试图让它在端口 80 上侦听(不确定我是否会关闭),我已经尝试过 Google,但我似乎可以在之后找到答案...

那么,有什么想法吗?

【问题讨论】:

    标签: ruby sockets networking tcpsocket


    【解决方案1】:

    可以使用套接字创建代理服务器,但它不是侦听计算机上所有流量的“嗅探器”。

    套接字服务器监听与该套接字建立的连接,就像 Web 服务器一样,它也是一种套接字服务器。它侦听连接,发送标头,然后侦听 Web 浏览器的请求,并通过套接字将数据返回给浏览器。

    要监控本地网络流量,您需要一个网络监控器,也称为“嗅探器”,例如 Wireshark

    【讨论】:

      【解决方案2】:

      您可以使用 WEBrick 之类的 ruby​​ 代理,并将其设置为整个计算机的代理。

      例如:

      require 'webrick'
      
      proxy = WEBrick::HTTPProxyServer.new(:Port => 8080, :ProxyContentHandler => proc do |request, response|
        if request.port == 80
          # Play with the data
          print "Available methods for request\n"
          print request.methods.join("\n") + "\n"
      
          print "\nAvailable methods for response\n"
          print response.methods.join("\n") + "\n"
        end
      end
      
      proxy.start
      

      【讨论】:

        猜你喜欢
        • 2012-11-02
        • 2019-03-16
        • 2017-08-13
        • 2018-09-21
        • 1970-01-01
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多