怎样用go语言获取本地IP地址

Python07

怎样用go语言获取本地IP地址,第1张

#include #include #pragma comment(lib,"ws2_32.lib") // 静态库 void findIP(char *ip, int size) { WORD v = MAKEWORD(1, 1)WSADATA wsaDataWSAStartup(v, &wsaData)// 加载套接字库 struct hostent *phostinfo = gethostbyname("")c...

实际业务:go 二进制文件在私有化部署中,需要对客户的服务器mac和ip进行绑定,系统只能运行在绑定的服务器上。把mac和ip地址配置到config中。

运行效果:系统可正常编译,正常访问,在用户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”,是主机名,主机名是文本型的,所以必须用冒号引起来即可。