安装好 go 环境,下载地址如下: 然后使用命令 之后建立一个文件夹(我建的是 goprojects),用来存放之后的go项目 在终端里输入一下命令: 1、编辑环境变量(没有安装vim的,可以根据提示命令进行安装): 2、设置 GOROOT以及GOPATH: 3、输入以下命令更改后的境变量生效: 测试是否安装 go 成功: 在终端中输入以下命令: 如果一直下载不成功的话,则是因为被墙了,这个解决方式因人而异,总体上就是设置代理之类的 注意: 下载的 gopacket 要存放在 GOPATH 中,如果不在,自己去移过去,不然程序无法成功导入 gopacket 相关包 1、获取本机所有的网络设备信息 输出如下: 首先,判断需要用哪个网络设备,这个可以根据 并且,需要在 输出获取的数据结果如下: you don’t have permission to capture on that device 则说明没有访问权限,此时,需要打开运行程序所生成的 如果还是不可以,说明此用户没有 root 权限,需要去赋予,使用 再去执行 exe 文件即可!
前提:
https://golang.google.cn/dl/tar -zxvf
解压安装vim /etc/profile
export GOPATH=/home/wyj/mine/software/goprojects export GOROOT=/home/wyj/mine/software/go export PATH=$PATH:/home/wyj/mine/software/go/bin export PATH=$PATH:$GOPATH:$GOROOT:/bin
source /etc/profile
go version
之后,每次新打开一个终端,运行go命令,都需要先输入以下命令:source /etc/profile
一、首先,下载gopacket包,libpcap库,配置下条件
# Get the gopacket package from GitHub go get github.com/google/gopacket # Pcap dev headers might be necessary sudo apt-get install libpcap-dev
go: missing Git command.
则是因为 ubuntu 中没有安装 git ,需要去安装,命令如下:sudo apt install git
Command 'go' not found
,则需要输入命令:source /etc/profile
二、进行测试
package main import ( "fmt" "github.com/google/gopacket" "github.com/google/gopacket/pcap" "log" "time" ) func main() { // Find all devices devices, err := pcap.FindAllDevs() if err != nil { log.Fatal(err) } // Print device information fmt.Println("Devices found:") index:=1 for _, d := range devices { fmt.Printf("n%d———— Name:%sn", index, d.Name) fmt.Println("Description: ", d.Description) fmt.Println("Devices addresses: ", d.Addresses) index++ for _, address := range d.Addresses { fmt.Println("- IP address: ", address.IP) fmt.Println("- Subnet mask: ", address.Netmask) } } }
2、打开设备实时捕捉数据信息IP address
去判断,以192开头的一般就是,我的是 ens33
。
然后就在 main
方法中添加以下代码://抓包 // Open device handle, err = pcap.OpenLive(device, snapshot_len, promiscuous, timeout) if err != nil {log.Fatal(err) } defer handle.Close() // Use the handle as a packet source to process all packets packetSource := gopacket.NewPacketSource(handle, handle.LinkType()) for packet := range packetSource.Packets() { // Process packet here fmt.Println(packet) }
main
方法外同时添加一个:var ( device string = "ens33"//根据个人情况而定 snapshot_len int32 = 1024 promiscuous bool = false err error timeout time.Duration = 30 * time.Second handle *pcap.Handle )
*****如果报以下错误 :build
文件,在终端中用root
用户,cd
到 build
文件所在路径,之后 通过 ./文件
运行即可!
例如:./go_build_main_go
vim /etc/sudoers
命令,在 root ALL=(ALL:ALL) ALL
这一行下加上一行:用户名 ALL=(ALL:ALL) ALL
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算