我想使用gopacket制作客户端TCP数据包,然后使用原始套接字发送它们.
这是一个简短易读的示例程序,演示了我想要做的事情:
package main
import (
"code.google.com/p/gopacket"
"code.google.com/p/gopacket/examples/util"
"code.google.com/p/gopacket/layers"
"log"
"net"
)
func main() {
defer util.Run()()
// XXX create tcp/ip packet
srcIP := net.ParseIP("127.0.0.1")
dstIP := net.ParseIP("192.168.0.1")
//srcIPaddr := net.IPAddr{
// IP: srcIP,
//}
dstIPaddr := net.IPAddr{
IP: dstIP,
}
ipLayer := layers.IPv4{
SrcIP: srcIP,
DstIP: dstIP,
Protocol: layers.IPProtocolTCP,
}
tcpLayer := layers.TCP{
SrcPort: layers.TCPPort(666),
DstPort: layers.TCPPort(22),
SYN: true,
}
tcpLayer.SetNetworkLayerForChecksum(&ipLayer)
buf := gopacket.NewSerializeBuffer()
opts := gopacket.SerializeOptions{
FixLengths: true,
ComputeChecksums: true,
}
err := gopacket.SerializeLayers(buf, opts, &ipLayer, &tcpLayer)
if …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的Windows 10上使用gopacket.
我正在使用它来嗅探并直接向NIC注入数据包.
我可以使用GOARCH = 386轻松编译和运行我的代码,但不能在GOARCH = amd64中.
值得注意的是:我不是在尝试交叉编译.
我正在使用go1.6.windows-386来编译32位版本,当我尝试用GOARCH = amd64编译时,我使用go1.6.windows-amd64.
我使用TDM-GCC作为linux编译工具.
该错误不是指示性的.它只是说
c:/WpdPack/Lib/x64/wpcap.lib: error adding symbols: File in wrong format
collect2.exe: error ld returned 1 exit status
有没有人设法建立这个,如果它甚至可能?
在定义依赖项(rand="0.3.0")之后尝试从教程(猜谜游戏)中的示例时,我得到了这个:
$ cargo build --verbose
Updating registry `https://github.com/rust-lang/crates.io-index`
Unable to update registry https://github.com/rust-lang/crates.io-index
Caused by:
failed to fetch `https://github.com/rust-lang/crates.io-index`
Caused by:
[16] The SSL certificate is invalid
Run Code Online (Sandbox Code Playgroud)
将此添加到货物注册表git repo,但没有成功:
[http]
sslVerify = false
Run Code Online (Sandbox Code Playgroud)
在哪里挖?