vc++获取系统网卡列表及IP地址信息
#include "stdafx.h"
#include <Windows.h>
#include <IPHlpApi.h>
#include <iostream>
#pragma comment(lib,"IPHlpApi.lib")
using namespace std; BOOL GetLocalAdaptersInfo()
{
//IP_ADAPTER_INFO结构体
PIP_ADAPTER_INFO pIpAdapterInfo = NULL;
pIpAdapterInfo = new IP_ADAPTER_INFO; //结构体大小
unsigned long ulSize = sizeof(IP_ADAPTER_INFO); //获取适配器信息
int nRet = GetAdaptersInfo(pIpAdapterInfo,&ulSize); if (ERROR_BUFFER_OVERFLOW == nRet)
{
//空间不足,删除之前分配的空间
delete []pIpAdapterInfo; //重新分配大小
pIpAdapterInfo = (PIP_ADAPTER_INFO) new BYTE[ulSize]; //获取适配器信息
nRet = GetAdaptersInfo(pIpAdapterInfo,&ulSize); //获取失败
if (ERROR_SUCCESS != nRet)
{
if (pIpAdapterInfo != NULL)
{
delete []pIpAdapterInfo;
}
return FALSE;
}
} //MAC 地址信息
char szMacAddr[];
//赋值指针
PIP_ADAPTER_INFO pIterater = pIpAdapterInfo;
while(pIterater)
{
cout<<"网卡名称:"<<pIterater->AdapterName<<endl; cout<<"网卡描述:"<<pIterater->Description<<endl; sprintf_s(szMacAddr,,"%02X-%02X-%02X-%02X-%02X-%02X",
pIterater->Address[],
pIterater->Address[],
pIterater->Address[],
pIterater->Address[],
pIterater->Address[],
pIterater->Address[]); cout<<"MAC 地址:"<<szMacAddr<<endl; cout<<"IP地址列表:"<<endl<<endl; //指向IP地址列表
PIP_ADDR_STRING pIpAddr = &pIterater->IpAddressList;
while (pIpAddr)
{
cout<<"IP地址: "<<pIpAddr->IpAddress.String<<endl;
cout<<"子网掩码:"<<pIpAddr->IpMask.String<<endl; //指向网关列表
PIP_ADDR_STRING pGateAwayList = &pIterater->GatewayList;
while(pGateAwayList)
{
cout<<"网关: "<<pGateAwayList->IpAddress.String<<endl; pGateAwayList = pGateAwayList->Next;
} pIpAddr = pIpAddr->Next;
}
cout<<endl<<"--------------------------------------------------"<<endl; pIterater = pIterater->Next;
} //清理
if (pIpAdapterInfo)
{
delete []pIpAdapterInfo;
} return TRUE;
} int _tmain(int argc, _TCHAR* argv[])
{
GetLocalAdaptersInfo(); cin.get();
return ;
}
vc++获取系统网卡列表及IP地址信息的更多相关文章
- GetAdaptersInfo获取网卡配置和Ip地址信息
一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址:如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种:因此,如果要获得本机所有网卡的IP和M ...
- 获取指定网卡对应的IP地址
#include <stdio.h> #include <string.h> #include <sys/socket.h> #include <sys/ty ...
- ubuntu下仅仅获取网卡一的ip地址 && shell中字符串拼接
问题描述: ubuntu下仅仅获取网卡一的ip地址 问题背景: eth0,eth1,eth2……代表网卡一,网卡二,网卡三…… lo代表127.0.0.1,即localhost | 问题描述: 已知字 ...
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ...
- Android项目--获取系统通讯录列表
----------------- 通讯录列表 ----------------- 按常理来说,获取系统通讯录列表,无非就是将通讯录的数据库打开获取数据,适配,添加即可. Cursor cursor; ...
- python 跨平台获取网卡信息和本机ip地址
笔者在项目中遇到过获取本机网卡ip的例子,利用python库psutil解决了此问题. def get_netcard(): """获取网卡名称和ip地址 "& ...
- Linux/CentOS服务器 一个网卡绑定多IP地址(永久设置)
有时我们在使用 Linux 服务器时需要配置多个IP地址.如果要配置多个IP地址是否需要多块网卡呢?答案是否定的.以 CentOS 系统为例,多个 IP 地址是可以共享一块物理网卡的. 如何永久为单网 ...
- Java获取请求客户端的真实IP地址
整理网友的材料,最后有源码,亲测能解决所有java获取IP真实地址的问题 整理的这里: 1.链接1 2.链接2 JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr() ...
- CentOS 6.9下双网卡绑定单个IP地址及装网卡绑定到一个网桥(转)
说明:经过查阅,原来双网卡绑定一个IP的专业名词叫做bond,可以实现负载均衡:如果想要实现两张网卡绑定到一个网桥,基本思路是两张网卡设置同一个网桥是行不通的,但如果先实现bond,然后将bond绑定 ...
随机推荐
- 我在Xcode 6上Swift框架的测试经验分享
我耗费了两个多月时间来琢磨Swift作为一门函数是编程语言都能做些什么,而今已经转移 到使用Swift来开发库文件了. 我花了一天的时间,最后发觉之前做的Swift特性探究是相当愉快的经历,我发现仍旧 ...
- 用tophat和cufflinks分析RNAseq数据[转载]
转自:http://blog.sciencenet.cn/home.php?mod=space&uid=635619&do=blog&id=884213 //今天看到一篇非常好 ...
- matplotlib绘制等高线图
参考自Matplotlib Python 画图教程 (莫烦Python)(12)_演讲•公开课_科技_bilibili_哔哩哔哩 https://www.bilibili.com/video/av16 ...
- 5、RabbitMQ - Exchange之 fanout \ 【direct 关键字发送】 \ topic
pytho系列之 RabbitMQ - Exchange几种模式 RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储 Rab ...
- mysql数据库从删库到跑路之mysql完整性约束
一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY ...
- 处理函数和数组声明[条款17]---《C++必知必会》
指向函数的指针声明和指向数组的指针声明容易混淆,原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号. int *f1( );//一个返回值为 int* 的函数 int ( ...
- 数据库(11)-- Hash索引和BTree索引 的区别
索引是帮助mysql获取数据的数据结构.最常见的索引是Btree索引和Hash索引. 不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引:而Mermory默认的索引是 ...
- java jdom 解析CDATA内容
package com; import java.io.IOException; import java.io.StringReader; import java.util.List; import ...
- 带你走进AJAX(1)
ajax是什么? (1)ajax (asynchronouse javascript and xml) 异步的javascript 和xml (2)ajax是一个粘合剂,将javascript.xml ...
- centos7防火墙的简单配置介绍
centos7版本 1.查看已开放的端口(默认不开放任何端口) firewall-cmd --list-ports 2.开启80端口 firewall-cmd --zone=public(作用域) - ...