动态获得 DNS
发布网友
发布时间:2022-05-24 01:06
我来回答
共3个回答
热心网友
时间:2024-01-03 02:40
调用ipconfig /all命令 会得到网络的所有信息
使用输出重定向可以使得得到的信息存入文件当中
分析文件就可以得到想要的DNS
关键句:
system("ipconfig /all >c:\\1.txt");
执行这个语句后会在c盘根目录产生1.txt文件,里面含有网络的各种信息
使用文件操作找到DNS SERVER所对应的IP地址就可以解决问题
---
貌似Windows 2000以上的系统都可以这样做
热心网友
时间:2024-01-03 02:41
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
WSADATA wsaData;
char name[155];
char *ip;
PHOSTENT hostinfo;
char str[16];
if ( WSAStartup( MAKEWORD(2,0), &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
if(OpenClipboard())
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, strlen(str)+1);
buffer = (char*)GlobalLock(clipbuffer);
strcpy(buffer, LPCSTR(str));
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}
sprintf(str, "您的IP是: %s \n已复制到剪贴板!\n", ip);
MessageBox(str, "提示", MB_ICONINFORMATION);
热心网友
时间:2024-01-03 02:41
Win2000不支持GetAdaptersAddress就用GetAdaptersInfo嘛,Windows98开始就支持了。
不是Windows就令说了。WinSock本来就和unix socket编程有点差别。WinSock2就差别就更多了。