实际业务:go 二进制文件在私有化部署中,需要对客户的服务器mac和ip进行绑定,系统只能运行在绑定的服务器上。把mac和ip地址配置到config中。
专注于为中小企业提供成都做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鱼峰免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
运行效果:系统可正常编译,正常访问,在用户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、登陆路由器。如图所示。
2、然后我们就能在运行状态里面看到Wan的IP地址了。如图所示。
3、WAN的IP地址就是我们用于上网的IP地址了。切换到系统工具。如图所示。
4、当然我们也可以在其他地方看公网IP。
5、切换到系统工具。如图所示。
6、然后打开系统日志,在系统日志里面有一个W=什么什么的,这个就是公网的IP地址了。如图所示。
查看外网IP地址方法:
方法一:执行命令IPCONFIG查询外网IP地址
1.用电脑直接通过宽带(PPPoE)或拨号上网;执行命令“ipconfig”;
查看宽带连接的IP地址即为外网IP地址;
注意:是创建的宽带连接的的IP地址,并非本地连接的IP地址;
2.若用电脑直接连网,并非动态IP而是固定IP;自己用于连网的本地连接的IP地址即为外网IP。
方法二:直接登录宽带路由器查询外网IP地址
1.设备在局域网内,通过宽带路由器共享上网,以直接登录宽带路由器查询外网IP地址;
2若不知宽带路由器IP地址;执行命令“ipconfig”;
查看用于连接网络的有线或无线网卡的默认网关,即为宽带路由器IP地址。
3.打开浏览器,输入宽带路由器的内网IP地址,输入正确的用户名及密码,确定登录;
4.查看“运行状态”里的“WAN口状态”;即可查看到设备的外网IP地址。
//通过ip138网站来查询外网IP的
#include afxinet.h
void CLanChatDlg::GetNetIP()
{
SetDlgItemText(IDC_NET_IP,"正在获取外网IP");
CString strsource;
CString Address;
CInternetSession mySession(NULL,0);
CHttpFile* myHttpFile=NULL;
Address="";//ip138网页
myHttpFile=(CHttpFile*)mySession.OpenURL(Address);//读取网络地址
while(myHttpFile-ReadString(strsource))
{ //循环读取下载来的网页文本
// AddToLog(strsource);
int begin=0;
begin=strsource.Find("[",0);
if(begin!=-1)//如果找到"[", 则找"]" 中括号内的文本则是 你的外网ip
{ int end=strsource.Find("]");
m_internetip=strsource.Mid(begin+1,end-begin-1);//提取外网ip
SetDlgItemText(IDC_NET_IP,m_internetip);//在左下角显示外网ip
}
}