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& ...
随机推荐
- Codeforces_789C_(dp)
C. Functions again time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- ipv6工具类
package mapreduce.nat; import java.math.BigDecimal; import java.math.BigInteger; import java.net.Ine ...
- 获取minist数据并转换成lmdb
caffe本身是没有数据集的,但在data目录下有获取数据的一些脚本.MNIST,一个经典的手写数字库,包含60000个训练样本和10000个测试样本,每个样本为28*28大小的黑白图片,手写数字为0 ...
- Mysql使用导出导入数据库
要在两台不同的电脑上进行开发,数据库需要统一,由于自己第一次完整的设计表结构,因此多次更改表结构,造成了很多不必要的麻烦, 需要将数据库导出成sql脚本: 命令行下具体用法如下: mysqldump ...
- hdfs深入:09、获取分布式文件系统客户端的几种方式
FileSystem是一个抽象类:获取一个抽象类有两种方式:第一种:看这个抽象类有没有提供什么方法返回他本身第二种:找子类 具体代码如下: /** * 通过url注册的方式访问hdfs,了解,不会用到 ...
- iOS Development Sites
iOS Development Sites 学习iOS开发有一段时间了,虽然还处于迷茫期,但相比以前的小白痴状态,现在还是蛮有改观的.期间接触了一些很好的网站和博客,现在摘录下来,就当建个索引,没 ...
- PS和AI安装后报代码为16的错误解决方法
1.问题 2.解决方式 右击属性,改为兼容性运行 参考文章地址:https://www.jb51.net/softjc/308950.html
- 零基础入门学习Python(36)--类和对象:给大家介绍对象
知识点 Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前 ...
- ubuntu 16.4 安装mysql-python
sudo apt-get install python-pip python-dev libmysqlclient-dev pip install MySQL-python
- 空循环导致CPU使用率很高
业务背景 业务背景就是需要将多张业务表中的数据增量同步到一张大宽表中,后台系统基于这张大宽表开展业务,所以就开发了一个数据同步工具,由中间件采集binlog消息到kafka里,然后我去消费,实现增量同 ...