MFC自己主动获取网络地址函数实现----广播地址,网关,子网掩码
void CSetSignalBoxDlg::OnBnClickedButtonGetbroadcastaddr()
{ //凝视部分为还有一种获取IP方式,可略过
//char Name[255];//定义用于存放获得的主机名的变量
//char *IP;//定义IP地址变量
//CString strIP="";
//PHOSTENT hostinfo;
//if(gethostname (Name, sizeof(Name)) == 0)
//{
// //假设成功地将本地主机名存放入由name參数指定的缓冲区中
// if((hostinfo = gethostbyname(Name)) != NULL)
// {
// //这是获取主机名。假设获得主机名成功的话,将返回一个指针,指向hostinfo,hostinfo
// //为PHOSTENT型的变量,以下即将用到这个结构体
// IP = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
// strIP.Format(IP);
// }
//}
CString strIP;
CString strMask;
CString strBroadcast;
CString strGateway;
in_addr broadcast;
PIP_ADAPTER_INFO pAdapterInfo; //IP_ADAPTER_INFO结构体存储网卡信息,包含网卡名、网卡描写叙述、网卡MAC地址、网卡IP等
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
pAdapterInfo = ( IP_ADAPTER_INFO *) malloc( sizeof( IP_ADAPTER_INFO ) );
ULONG ulOutBufLen;
//得到结构体大小,用于GetAdaptersInfo參数
ulOutBufLen = sizeof(IP_ADAPTER_INFO);
// 第一次调用GetAdapterInfo获取ulOutBufLen大小
//调用GetAdaptersInfo函数,填充pIpAdapterInfo指针变量;当中ulOutBufLen參数既是一个输入量也是一个输出量
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW)
{
free(pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR)
{
pAdapter = pAdapterInfo;
while (pAdapter) //有多个网卡
{
strIP.Format(_T("%s"), pAdapter->IpAddressList.IpAddress.String);
strMask.Format(_T("%s"),pAdapter->IpAddressList.IpMask.String);
strGateway.Format(_T("%s"),pAdapter->GatewayList.IpAddress.String);
pAdapter = pAdapter->Next;
}
broadcast.S_un.S_addr =(inet_addr(strIP) & inet_addr(strMask))| (~inet_addr(strMask));
strBroadcast = inet_ntoa(broadcast);
}
SetDlgItemText(IDC_EDIT_ServerIP,strBroadcast);
SetDlgItemText(IDC_EDIT_SubnetMask,strMask);
SetDlgItemText(IDC_EDIT_Gateway,strGateway);
if (pAdapterInfo)
{
free(pAdapterInfo);
}
}
MFC自己主动获取网络地址函数实现----广播地址,网关,子网掩码的更多相关文章
- 浅谈MFC类CrackMe中消息处理函数查找方法
最近一个学姐发给我了一份CrackMe希望我解一下,其中涉及到了MFC的消息函数查找的问题,就顺便以此为例谈一下自己使用的消息函数查找的方法.本人萌新,如果有任何错漏与解释不清的地方,欢迎各路大佬指正 ...
- <经验杂谈>C#中一种最简单、最基本的反射(Reflection):通过反射获取方法函数
说起反射之前和很多用C#/.net的同仁们一样,相比于一般应用层对数据的增删改查总有点觉得深奥到难以理解.其实程序这东西,用过.实践过就很简单,我一直这么认为. 先说下概念:反射 Reflection ...
- func_get_args 获取一个函数的所有参数
func_get_args 获取一个函数的所有参数 { $numargs = func_num_args(); //参数数量 echo "参数个数是: $numargs&l ...
- 『实践』Yalmip获取对偶函数乘子
『实践』Yalmip获取对偶函数乘子 一.sdpsetting设置 Yalmip网站给出的说明 savesolveroutput默认为0,需要设置为1才会保存输出结果. 下面是我模型的约束个数: 二. ...
- Javascript class获取回调函数数据
/********************************************************************** * Javascript class获取回调函数数据 * ...
- vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法
Header.vue <template> <div> <h2>我是头部组件</h2> <button @click="getParen ...
- [转]用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口
原文链接: 1.用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口 2.Windows MFC 两个OpenGL窗口显示与线程RC问题
- 探寻main函数的“标准”写法,以及获取main函数的参数、返回值
main函数表示法 很多同学在初学C或者C++时,都见过各种各样的main函数表示法: main(){/*...*/} void main(){/*...*/} int main(){/ ...
- vue--子组件主动获取父组件的数据和方法
子组件主动获取父组件的数据和方法 简单示例: this.$parent.数组 this.$parent.方法 示例: <template> <div id="Header& ...
随机推荐
- Which dispatch method would be used in Swift?-Existential Container
In this example: protocol MyProtocol { func testFuncA() } extension MyProtocol { func testFuncA() { ...
- vue项目打包步骤及运行打包项目
(1)项目打包 终端运行命令 npm run build 打包成功的标志与项目的改变,如下图: 点击index.html,通过浏览器运行,出现以下报错,如图: 那么应该如何修改呢? 具体步骤如下 ...
- 用宿主机创建一个容器bind命令的应用
先创建一个网页目录 [root@docker ~]# mkdir /app/wwwroot -p 用bind运行,源目录为刚才创建的 [root@docker ~]# docker run -itd ...
- note for git
1.download https://git-for-windows.github.io/ 2.command add file to git: git add filename & git ...
- double salary = wage = 9999.99错误
在看书时,有这么一句表达式 double salary = wage = 9999.99; 在Linux中编译时,不能通过,提示是 error: 'wage' was not declared in ...
- JavaScript中的特殊数据类型
JavaScript中的特殊数据类型 制作人:全心全意 转义字符 以反斜杠开头的不可显示的特殊字符通常为控制字符,也被称为转义字符.通常转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混 ...
- Ajax实现跨域访问最新方式
在实际项目当中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢? 解决方案 1.Jsonp Jsonp解决跨域相对简单,服务器无需任何配置. ...
- Python中关于使用正则表达式相关的部分笔记
一点点自己记的笔记,如果各位朋友看不懂,可以在评论区留言,会尽可能快的回复. 所有的知识点全部贴在代码上了,注释也写了. 建议大伙把代码拷到自己的机器上,运行,查看结果,然后,结合注释,再自己稍稍理解 ...
- hadoop_exporter+prometheus
1.准备工作 安装go.glibe(需要连google服务器,咋连的,我就不写了,因为尝试了各种办法,都失败了,很伤心) 2.下载hadoop_exporter cd /usr/local/prom/ ...
- 牛客网sql练习
一建表语句 /* Navicat MySQL Data Transfer Source Server : test Source Server Version : 50717 Source Host ...