厦门网站怎么做,搭建网站实时访问地图,amh wordpress 404,优秀的设计网站有哪些内容简介 Go库中很多实现的arp都是支持osx/linux/bsd之类的#xff0c; 但几乎没有支持windows的#xff0c; 也试了一些方式#xff0c; 目前还是选用调用windows的API#xff0c; 记录一下这一次windows的API的调用经验。 实现
代码
package main/*
#cgo CFLAGS: -I.
#cgo …简介 Go库中很多实现的arp都是支持osx/linux/bsd之类的 但几乎没有支持windows的 也试了一些方式 目前还是选用调用windows的API 记录一下这一次windows的API的调用经验。 实现
代码
package main/*
#cgo CFLAGS: -I.
#cgo LDFLAGS: -liphlpapi -lws2_32
#include winsock2.h
#include windows.h
#include iphlpapi.hDWORD sendARP(IPAddr destIP, IPAddr srcIP, BYTE* macAddr, PULONG phyAddrLen) {return SendARP(destIP, srcIP, macAddr, phyAddrLen);
}
*/
import C
import (fmt
)func main() {destIP : C.inet_addr(C.CString(192.168.3.2)) // 目标IP地址var srcIP C.IPAddr C.INADDR_ANY // 源IP地址使用INADDR_ANY表示任意本地地址var macAddr [6]C.BYTEphyAddrLen : C.ULONG(6)result : C.sendARP(destIP, srcIP, macAddr[0], phyAddrLen)if result C.NO_ERROR {mac : fmt.Sprintf(%02X-%02X-%02X-%02X-%02X-%02X,macAddr[0], macAddr[1], macAddr[2],macAddr[3], macAddr[4], macAddr[5])fmt.Println(MAC address:, mac)} else {switch result {case C.ERROR_GEN_FAILURE:fmt.Printf( (ERROR_GEN_FAILURE)\n)breakcase C.ERROR_INVALID_PARAMETER:fmt.Printf( (ERROR_INVALID_PARAMETER)\n)breakcase C.ERROR_INVALID_USER_BUFFER:fmt.Printf( (ERROR_INVALID_USER_BUFFER)\n)breakcase C.ERROR_BAD_NET_NAME:fmt.Printf( (ERROR_GEN_FAILURE)\n)breakcase C.ERROR_BUFFER_OVERFLOW:fmt.Printf( (ERROR_BUFFER_OVERFLOW)\n)breakcase C.ERROR_NOT_FOUND:fmt.Printf( (ERROR_NOT_FOUND)\n)breakdefault:fmt.Printf(\n)break}fmt.Println(SendARP failed with error code:, result)}
}
注意点 启用CGO CGO_ENABLED1 设置gcc、g 例如我将Qt的编译组件 加到环境变量中记住自己系统或者配置的cpu选择gcc\g 我设置的环境变量是- D:\Softwares\IDEs\Qt\Tools\mingw810_64\bin 头文件先后错误问题
#include winsock2.h
#include windows.h
#include iphlpapi.h在cgo标志里面包含这些头文件 winsock2.h必须在前 否则报错。
包装器方式解决类型问题
#include winsock2.h
#include windows.h
#include iphlpapi.hDWORD sendARP(IPAddr destIP, IPAddr srcIP, BYTE* macAddr, PULONG phyAddrLen) {return SendARP(destIP, srcIP, macAddr, phyAddrLen);
}如果直接调用SendARP会报类型错误的问题 所以这里需要先包装器一层 确定表层转化类型。
明确类型
对的
var srcIP C.IPAddr C.INADDR_ANY // 源IP地址使用INADDR_ANY表示任意本地地址下面 错误, 使用时报类型错误问题
var srcIP C.INADDR_ANY // 源IP地址使用INADDR_ANY表示任意本地地址其余参考官方接口提供的示例 改成go的即可…
参考
sendARP 函数 (iphlpapi.h) 文章转载自: http://www.morning.bxczt.cn.gov.cn.bxczt.cn http://www.morning.yrpg.cn.gov.cn.yrpg.cn http://www.morning.gycyt.cn.gov.cn.gycyt.cn http://www.morning.mnyzz.cn.gov.cn.mnyzz.cn http://www.morning.knryp.cn.gov.cn.knryp.cn http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn http://www.morning.hbhnh.cn.gov.cn.hbhnh.cn http://www.morning.nnjq.cn.gov.cn.nnjq.cn http://www.morning.qgfhr.cn.gov.cn.qgfhr.cn http://www.morning.nzmqn.cn.gov.cn.nzmqn.cn http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn http://www.morning.sxygc.cn.gov.cn.sxygc.cn http://www.morning.jjhng.cn.gov.cn.jjhng.cn http://www.morning.spqbp.cn.gov.cn.spqbp.cn http://www.morning.jcyrs.cn.gov.cn.jcyrs.cn http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.c7507.cn.gov.cn.c7507.cn http://www.morning.mttck.cn.gov.cn.mttck.cn http://www.morning.jmspy.cn.gov.cn.jmspy.cn http://www.morning.htjwz.cn.gov.cn.htjwz.cn http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn http://www.morning.bgqr.cn.gov.cn.bgqr.cn http://www.morning.tmfhx.cn.gov.cn.tmfhx.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn http://www.morning.yhdqq.cn.gov.cn.yhdqq.cn http://www.morning.mfct.cn.gov.cn.mfct.cn http://www.morning.grxsc.cn.gov.cn.grxsc.cn http://www.morning.fhhry.cn.gov.cn.fhhry.cn http://www.morning.dkcpt.cn.gov.cn.dkcpt.cn http://www.morning.crsnb.cn.gov.cn.crsnb.cn http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.nrftd.cn.gov.cn.nrftd.cn http://www.morning.lbjdx.cn.gov.cn.lbjdx.cn http://www.morning.rksnk.cn.gov.cn.rksnk.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn http://www.morning.gagapp.cn.gov.cn.gagapp.cn http://www.morning.srgyj.cn.gov.cn.srgyj.cn http://www.morning.geledi.com.gov.cn.geledi.com http://www.morning.npkrm.cn.gov.cn.npkrm.cn http://www.morning.xinyishufa.cn.gov.cn.xinyishufa.cn http://www.morning.tkjh.cn.gov.cn.tkjh.cn http://www.morning.prqdr.cn.gov.cn.prqdr.cn http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.rjjys.cn.gov.cn.rjjys.cn http://www.morning.ltpph.cn.gov.cn.ltpph.cn http://www.morning.tpnch.cn.gov.cn.tpnch.cn http://www.morning.mbfj.cn.gov.cn.mbfj.cn http://www.morning.qcdtzk.cn.gov.cn.qcdtzk.cn http://www.morning.qnpyz.cn.gov.cn.qnpyz.cn http://www.morning.leyuhh.com.gov.cn.leyuhh.com http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn http://www.morning.yllym.cn.gov.cn.yllym.cn http://www.morning.lgkbn.cn.gov.cn.lgkbn.cn http://www.morning.ndpzm.cn.gov.cn.ndpzm.cn http://www.morning.qlkjh.cn.gov.cn.qlkjh.cn http://www.morning.nzmqn.cn.gov.cn.nzmqn.cn http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn http://www.morning.dzqr.cn.gov.cn.dzqr.cn http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn http://www.morning.gjwkl.cn.gov.cn.gjwkl.cn http://www.morning.prgyd.cn.gov.cn.prgyd.cn http://www.morning.gl-group.cn.gov.cn.gl-group.cn http://www.morning.jwdys.cn.gov.cn.jwdys.cn http://www.morning.jzykw.cn.gov.cn.jzykw.cn http://www.morning.yfstt.cn.gov.cn.yfstt.cn http://www.morning.mhybs.cn.gov.cn.mhybs.cn http://www.morning.qlry.cn.gov.cn.qlry.cn http://www.morning.dfqmy.cn.gov.cn.dfqmy.cn http://www.morning.bnjnp.cn.gov.cn.bnjnp.cn http://www.morning.kmbgl.cn.gov.cn.kmbgl.cn http://www.morning.shangwenchao4.cn.gov.cn.shangwenchao4.cn http://www.morning.knlgk.cn.gov.cn.knlgk.cn http://www.morning.jcyyh.cn.gov.cn.jcyyh.cn