Golang:如何检查HTTP请求是否在TCP有效负载字节中

Tgogos

我正在使用gopacket软件包,每当我有一个TCP数据包时,我都想检查有效载荷是否包含HTTP请求。有没有一种简单的方法可以代替编写自己的解析器呢?还有一个函数(请参阅:func ReadRequest(b * bufio.Reader)),该函数返回Request结构,但是我不知道应该使用哪种输入。tcp.Payload是byte []数组,似乎具有我需要解析的信息(请参见以下示例):

// Get the TCP layer from this packet
if tcpLayer := packet.Layer(layers.LayerTypeTCP); tcpLayer != nil {
    fmt.Printf("TCP ")
    // Get actual TCP data from this layer
    tcp, _ := tcpLayer.(*layers.TCP)
    srcPort = tcp.SrcPort
    dstPort = tcp.DstPort
    if tcp.SYN {
        fmt.Print("[SYN] ")
    }
    if tcp.ACK {
        fmt.Print("[ACK] ")
    }
    if tcp.FIN {
        fmt.Print("[FIN] ")
    }
    fmt.Printf("%s:%d > %s:%d ", srcIP, srcPort, dstIP, dstPort)

    fmt.Println(string(tcp.Payload))
}

发送HTTP请求后,我得到以下输出:

PKT [001] TCP [SYN] 192.168.2.6:59095 > 192.168.3.5:80
PKT [002] TCP [SYN] [ACK] 192.168.3.5:80 > 192.168.2.6:59095
PKT [003] TCP [ACK] 192.168.2.6:59095 > 192.168.3.5:80
PKT [004] TCP [ACK] 192.168.2.6:59095 > 192.168.3.5:80 GET /certificates/test.pdf HTTP/1.1
User-Agent: Wget/1.15 (linux-gnu)
Accept: */*
Host: 192.168.3.5
Connection: Keep-Alive

欢迎任何建议...

Tgogos

在以下问题的帮助下:如何解析Go中http标头进行以下尝试http.ReadRequest()工作...

if tcpLayer := packet.Layer(layers.LayerTypeTCP); tcpLayer != nil {
   tcp, _ := tcpLayer.(*layers.TCP)
   if len(tcp.Payload) != 0 {
      reader := bufio.NewReader(bytes.NewReader(tcp.Payload))
      httpReq, err := http.ReadRequest(reader)
      ...
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Shopify,nodejs:如果范围改变,检查应用程序中的shopify api请求是否有效

来自分类Dev

github端口59249请求是否有效

来自分类Dev

Python Rauth - POST 请求是否有效?

来自分类Dev

如何使用hapijs检查请求中是否有任何有效载荷(POST)数据?

来自分类Dev

Golang,Heroku-如何检查请求是否为https

来自分类Dev

用Jackson解析HTTP请求有效负载

来自分类Dev

声明$ http请求有效负载而不模拟它们

来自分类Dev

声明$ http请求有效负载而不模拟它们

来自分类Dev

用Jackson解析HTTP请求有效负载

来自分类Dev

如何检查Laravel请求是否没有输入

来自分类Dev

如何检查请求是否在Total.js控制器中具有发布数据

来自分类Dev

如何检查代理在JavaScript中是否有效

来自分类Dev

如何检查URL在Swift中是否有效?

来自分类Dev

在GWT RPC调用中编码请求有效负载

来自分类Dev

.NET Core 3中的日志请求有效负载

来自分类Dev

Typhoeus Ruby 删除请求中的有效负载

来自分类Dev

如何从POST请求有效负载中提取特定信息并保存到txt文件中?

来自分类Dev

检查字节序列在Javascript中是否为有效的UTF-8序列

来自分类Dev

如何检查QImage是否有效?

来自分类Dev

如何检查日期是否有效?

来自分类Dev

如何检查len是否有效

来自分类Dev

如何检查len是否有效

来自分类Dev

如何检查SSHD是否有效?

来自分类Dev

如何在 Nestd 有效负载中获取有效负载数据?

来自分类Dev

梅森:请求有效负载

来自分类Dev

其余API请求有效负载

来自分类Dev

如何在 Http 拦截器中检索 JSON 有效负载?

来自分类Dev

有效负载字节与实际字节不同

来自分类Dev

有效负载字节与实际字节不同

Related 相关文章

热门标签

归档