运行效果:系统可正常编译,正常访问,在用户Auth接口进行核对。
//检验Mac和内网IP,测试环境不做校验
func (c *CommonBase)CheckMacAndIp()error {
ipCfg :=g.Cfg().GetString("machine.Ipaddr")
macCfg :=g.Cfg().GetString("machine.Macip")
if ipCfg =="127.0.0.1" {
return nil
}
macArray,_ :=gipv4.GetMacArray()
if len(macArray) ==0 {
return gerror.New("mac地址获取失败")
}
if garray.NewStrArrayFrom(macArray).Contains(macCfg) ==false {
return gerror.New("示授权的应用MAC,请联系")
}
ipArray,_ :=gipv4.GetIpArray()
ipIntranetArray,_ :=gipv4.GetIntranetIpArray()
if len(ipArray) ==0 &&len(ipIntranetArray) ==0 {
return gerror.New("ip地址获取失败")
}
if garray.NewStrArrayFrom(ipArray).Merge(ipIntranetArray).Contains(ipCfg) ==false {
return gerror.New("示授权的应用IP,请联系")
}
return nil
}
项目使用GoFrame框架1.6。考虑到客户可能会对内存数据做分析破解,可以把mac和ip地址做AES加密。
1、新建一个窗口程序后在程序上画两个标签,一个按钮,当我们按下按钮时,本机IP地址和MAC便展示在标签1和标签2上,把标签1标题改为“本机IP地址”,标签2改为“本机MAC”地址。
2、我在窗口程序中点击“按钮1”,会生成子程序名为“_按钮1_被单击”,我们在下面开始编写代码,其实“取IP地址 ()”是易中的核心支持库提供的程序。
3、然后我们运行程序上方工具栏中的右三角形按钮,如果没有在调试运行程序,那么应该是黑色的,但是此时我已经开始了调试。
4、我们接下来写取得MAC地址的程序,在之前的代码后面追加代码如下:标签2.标题 = 取本机网卡物理地址 ()。
5、如果你想取局域网其他主机的IP地址那么,把之前的代码变动一下就OK了,代码更改后如下:标签1.标题 = 取IP地址 (“rxtserver”)其中包冒号引起来的部分“rxtserver”,是主机名,主机名是文本型的,所以必须用冒号引起来即可。