下面的代码好像不能判断出是自动的还是手动的,UINT EnableDns这个值是判断DNS是否开启,不知道是不是判断DNS是否是自动还是手动的
typedef struct {
char HostName[MAX_HOSTNAME_LEN + 4];//本地计算机的主机名称
char DomainName[MAX_DOMAIN_NAME_LEN + 4];//本地计算机已注册的域名
PIP_ADDR_STRING CurrentDnsServer;//使用DnsServerList为本地计算机获取DNS服务
IP_ADDR_STRING DnsServerList;//本地可用DNS服务器的IP_ADDR_STRING结构体链表
UINT NodeType;//本地计算机节点类型
char ScopeId[MAX_SCOPE_ID_LEN + 4];//DHCP范围内的名字
UINT EnableRouting;//指定本地计算机路由功能是否开启
UINT EnableProxy;//指定本地计算机是否作为ARP代理
UINT EnableDns;//指定本地计算机DNS是否开启
} FIXED_INFO, *PFIXED_INFO;
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
#include <iphlpapi.h>
//#include <Iptypes.h>
#pragma comment(lib,"ws2_32.lib")
#pragma comment(lib, "Iphlpapi.lib")
int _tmain(int argc, _TCHAR* argv[])
{
FIXED_INFO * FixedInfo;
ULONG ulOutBufLen;
DWORD dwRetVal;
IP_ADDR_STRING* pIPAddr;
FixedInfo = (FIXED_INFO *)
GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );
ulOutBufLen = sizeof( FIXED_INFO );
if( ERROR_BUFFER_OVERFLOW ==GetNetworkParams( FixedInfo, &ulOutBufLen ) )
{
GlobalFree( FixedInfo );
FixedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );
}
if ( dwRetVal =GetNetworkParams( FixedInfo, &ulOutBufLen ) )
{
printf( "Call toGetNetworkParamsfailed. Return Value: %08x\n", dwRetVal );
exit(1);
}
else
{
printf( "Host Name: %s\n", FixedInfo -> HostName );
printf( "Domain Name: %s\n", FixedInfo -> DomainName );
printf( "DNS Servers:\n" );
printf( "\t%s\n", FixedInfo -> DnsServerList.IpAddress.String );
pIPAddr = FixedInfo -> DnsServerList.Next;
while ( pIPAddr )
{
printf( "\t%s\n", pIPAddr ->IpAddress.String );
pIPAddr = pIPAddr ->Next;
}
}
getchar();
return 0;
}
2 个解决方案
#1
system("netsh ... >netsh.txt");
//然后读文件netsh.txt的内容
//然后读文件netsh.txt的内容
#2
又看见大神了,肿么办
#1
system("netsh ... >netsh.txt");
//然后读文件netsh.txt的内容
//然后读文件netsh.txt的内容
#2
又看见大神了,肿么办