获取网络配置信息
2009-06-12 11:01
330 查看
void GetMac2()
{
// It is possible for an adapter to have multiple
// IPv4 addresses, gateways, and secondary WINS servers
// assigned to the adapter.
// Note that this sample code only prints out the
// first entry for the IP address/mask, gateway,
// and secondary WINS server for each adapter.
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
unsigned long ulOutBufLen = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
ulOutBufLen = sizeof(IP_ADAPTER_INFO);
// Make an initial call to GetAdaptersInfo to get
// the necessary size into the ulOutBufLen variable
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS) {
GlobalFree (pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
pAdapter = pAdapterInfo;
while (pAdapter) {
printf("/tAdapter Name: /t%s/n", pAdapter->AdapterName);
printf("/tAdapter Desc: /t%s/n", pAdapter->Description);
printf("/tAdapter Addr: /t");
for (UINT i = 0; i < pAdapter->AddressLength; i++)
printf("%.2x%c", pAdapter->Address[i], i == pAdapter->AddressLength - 1 ? '/n' : '-');
printf("/tIP Address: /t%s/n", pAdapter->IpAddressList.IpAddress.String);
printf("/tIP Mask: /t%s/n", pAdapter->IpAddressList.IpMask.String);
printf("/tGateway: /t%s/n", pAdapter->GatewayList.IpAddress.String);
printf("/t***/n");
if (pAdapter->DhcpEnabled) {
printf("/tDHCP Enabled: Yes/n");
printf("/t/tDHCP Server: /t%s/n", pAdapter->DhcpServer.IpAddress.String);
printf("/tLease Obtained: %ld/n", pAdapter->LeaseObtained);
}
else
printf("/tDHCP Enabled: No/n");
if (pAdapter->HaveWins) {
printf("/tHave Wins: Yes/n");
printf("/t/tPrimary Wins Server: /t%s/n", pAdapter->PrimaryWinsServer.IpAddress.String);
printf("/t/tSecondary Wins Server: /t%s/n", pAdapter->SecondaryWinsServer.IpAddress.String);
}
else
printf("/tHave Wins: No/n");
pAdapter = pAdapter->Next;
}
}
else {
printf("Call to GetAdaptersInfo failed./n");
}
}
{
// It is possible for an adapter to have multiple
// IPv4 addresses, gateways, and secondary WINS servers
// assigned to the adapter.
// Note that this sample code only prints out the
// first entry for the IP address/mask, gateway,
// and secondary WINS server for each adapter.
PIP_ADAPTER_INFO pAdapterInfo;
PIP_ADAPTER_INFO pAdapter = NULL;
DWORD dwRetVal = 0;
unsigned long ulOutBufLen = 0;
pAdapterInfo = (IP_ADAPTER_INFO *) malloc( sizeof(IP_ADAPTER_INFO) );
ulOutBufLen = sizeof(IP_ADAPTER_INFO);
// Make an initial call to GetAdaptersInfo to get
// the necessary size into the ulOutBufLen variable
if (GetAdaptersInfo( pAdapterInfo, &ulOutBufLen) != ERROR_SUCCESS) {
GlobalFree (pAdapterInfo);
pAdapterInfo = (IP_ADAPTER_INFO *) malloc (ulOutBufLen);
}
if ((dwRetVal = GetAdaptersInfo( pAdapterInfo, &ulOutBufLen)) == NO_ERROR) {
pAdapter = pAdapterInfo;
while (pAdapter) {
printf("/tAdapter Name: /t%s/n", pAdapter->AdapterName);
printf("/tAdapter Desc: /t%s/n", pAdapter->Description);
printf("/tAdapter Addr: /t");
for (UINT i = 0; i < pAdapter->AddressLength; i++)
printf("%.2x%c", pAdapter->Address[i], i == pAdapter->AddressLength - 1 ? '/n' : '-');
printf("/tIP Address: /t%s/n", pAdapter->IpAddressList.IpAddress.String);
printf("/tIP Mask: /t%s/n", pAdapter->IpAddressList.IpMask.String);
printf("/tGateway: /t%s/n", pAdapter->GatewayList.IpAddress.String);
printf("/t***/n");
if (pAdapter->DhcpEnabled) {
printf("/tDHCP Enabled: Yes/n");
printf("/t/tDHCP Server: /t%s/n", pAdapter->DhcpServer.IpAddress.String);
printf("/tLease Obtained: %ld/n", pAdapter->LeaseObtained);
}
else
printf("/tDHCP Enabled: No/n");
if (pAdapter->HaveWins) {
printf("/tHave Wins: Yes/n");
printf("/t/tPrimary Wins Server: /t%s/n", pAdapter->PrimaryWinsServer.IpAddress.String);
printf("/t/tSecondary Wins Server: /t%s/n", pAdapter->SecondaryWinsServer.IpAddress.String);
}
else
printf("/tHave Wins: No/n");
pAdapter = pAdapter->Next;
}
}
else {
printf("Call to GetAdaptersInfo failed./n");
}
}
相关文章推荐
- Windows获取本地机器的全部网络配置信息
- 获取本机网络配置信息及ARP包的发送
- 初学python-获取网络设备配置文件接口IP信息
- WindowsAPI获取主机网络配置和网络连接信息
- 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
- 【转载】利用GetNetworkParams函数获取本地网络配置信息
- 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
- linux服务器网络配置_自动获取ip_手动设置静态ip
- [Win32]本地计算机网络信息的获取
- C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
- VB.NET 2005 获取硬件信息(包括CPU、主板、BOIS、显卡、内存、网络、存储介质等)
- Linux 网络编程基础(2)-- 获取主机信息
- asp.net IIS 部署报错/获取不到当前用户信息 配置方法
- Qt-获取主机网络信息之QHostAddress
- Delphi2010中采用DataSnap的三层网络架构服务器获取客户端ip,端口信息
- Android获取当前的网络连接信息和网络链接状态 GPRS 和 WiFi网络
- iOS获取网络类型和运营商信息
- Nginx 获取版本和配置信息
- Linux下通过ioctl系统调用来获取和设置网络信息
- (一)表层网络信息获取(Python引擎爬虫)