导航:首页 > IDC知识 > c通过域名获取ip

c通过域名获取ip

发布时间:2021-01-21 11:45:14

1、用C语言编写一个得到域名的IP的程序,得到的IP放入指定的变量中

我可以得出IP,但是不能把IP赋给变量,本人菜鸟一只,学C不到两个月,所以只能做到这了,代码给楼主
#include<stdio.h>
#include<stdlib.h>
void main()
{
char str[50],str1[40];
printf("请输入域名:");
gets(str1);
sprintf(str,"ping %s",str1);
system(str);
}
满意就给分,不满意就不用了

2、如何用c或者c++代码获取默认DNS服务器的ip

#include<windows.h>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
system("ipconfig /all");//使用运行CMD.exe,并输入ipconfig /all,可得出本机所有物理地址信息(IP信息)专
getchar();//获取记录信属息
return 0;
}

3、用C语言编写一个得到域名的IP的程序

||输入 域名
结果的 4小节整数 存 int d1,d2,d3,d4 变量中。

#include <stdio.h>
#include <stdlib.h>

void main()
{
char ym[80]="www.baidu.com";
FILE *fp;
char cmd[120];
char nameout[]="tmp_ping.txt"; // 临时文件
char str3[32];
int i,len,d1,d2,d3,d4;

printf("Enter domain address\n");
scanf("%s",&ym[0]);
sprintf(cmd,"ping %s -n 1 > %s\0",ym,nameout);
system(cmd);
fp = fopen(nameout,"r");
fscanf(fp,"%*s %*s %s",&str3[0]);
fclose(fp);
len = strlen(str3);
for (i=0;i<len;i++) if ( str3[i] == '[' || str3[i] == ']'|| str3[i] == '.') str3[i] = ' ';
sscanf(str3, "%d %d %d %d",&d1,&d2,&d3,&d4);
printf("ip=%d.%d.%d.%d\n",d1,d2,d3,d4);

sprintf(cmd,"ERASE /F /Q %s\0",nameout); // 删去临时文件
system(cmd);
getchar();
}

程序未考虑错误域名和无IP返回的域名,你可以自己补充几行处理程序。

4、C语言中 如何实现域名转换为IP 高分

char cmd[100];
char url[]="www.BAIDU.COM";
char tmp_file_name[]="tmp.txt";
FILE *fp;
sprintf(cmd,"nslookup %s > %s",url,tmp_file_name);
system(cmd);
if ( (fp=fopen(tmp_file_name,"r"))==NULL ){
printf("can not open %s\n",tmp_file_name);
exit(0);
}
// 然后按行读。跳过前两行。找后面的行。
// 如果某行第一个字符串是Addresses:
// 第二个字符串就是 IP
tmp.txt:
Server: aaaaaaaaaa
Address: nnn.nnn.nnn.nnn

Non-authoritative answer:
Name: www.a.shifen.COM
Addresses: 119.75.213.61, 119.75.216.30
Aliases: www.BAIDU.COM

5、怎么用c或者c++代码获取默认DNS服务器的ip

#include<windows.h>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
system("ipconfig /all");//使用运行CMD.exe,并输入ipconfig /all,可得出本机所有物理地址信息内(容IP信息)
getchar();//获取记录信息
return 0;
}

6、C语言能获取当前IP吗

#include "stdio.h"
#include "conio.h"
main()
{
int i,j;
char ip[20];
char temp[100];
char ch='\0';
FILE *fp;
system("ipconfig >d:\\myip.txt");
if ((fp=fopen("d:\\myip.txt","r"))==NULL)
{
printf("the file can not open:\nPress any key to exit:");
getch();
exit(1);
}
for (i=0;i<7;i++)
{fgets(temp,80,fp); /*跳过抄一袭些行*/
/*printf("%s\n",temp); */}
fgets(temp,80,fp);
i=0;j=0;
while (temp[i++]!=':')
;
while (temp[i]!='\n')
ip[j++]=temp[i++];
ip[j]=0;
printf("IP=%s\n",ip);
fclose(fp);
system("del d:\\myip.txt");

getch();
}

7、怎么用c或者c++代码获取默认DNS服务器的ip

这里的代码可以打印出电脑默认的DNS服务器

#pragma warning(disable:4996)
#include <stdio.h>  
#include <WinSock2.h>  
#include <iphlpapi.h>  

#pragma comment(lib, "IPHLPAPI.lib")  
#pragma comment(lib, "ws2_32.lib")  
int main() // 获取本地主机名、域名和DNS服务器信息  
{
// 声明变量  
FIXED_INFO * FixedInfo;     // 定义保存本地计算机网络参数信息的结构体指针  
ULONG    ulOutBufLen;       // 保存获取到的本地计算机网络参数信息结构体链表的长度  
DWORD    dwRetVal;          // 调用GetNetworkParams()函数的返回值  
IP_ADDR_STRING * pIPAddr;   // 保存所有DNS服务器的IP地址列表  

FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, sizeof(FIXED_INFO));   // 为FixedInfo结构体分配内存空间  
ulOutBufLen = sizeof(FIXED_INFO);         // 初始化ulOutBufLen变量值  

  // 第1次调用GetNetworkParams()函数,获取返回结果的大小到ulOutBufLen中  
if (ERROR_BUFFER_OVERFLOW == GetNetworkParams(FixedInfo, &ulOutBufLen))
{
GlobalFree(FixedInfo);
FixedInfo = (FIXED_INFO *)GlobalAlloc(GPTR, ulOutBufLen);
}

// 第2次调用GetNetworkParams()函数,以前面获取的ulOutBufLen作为参数,  
if (dwRetVal = GetNetworkParams(FixedInfo, &ulOutBufLen) != ERROR_SUCCESS)
{
printf("调用GetNetworkParams()函数失败。返回值: %08x ", dwRetVal);
}
else
{
printf(" DNS服务器列表: ");
printf("%s ", FixedInfo->DnsServerList.IpAddress.String);

pIPAddr = FixedInfo->DnsServerList.Next;
while (pIPAddr)
{
printf(" %s ", pIPAddr->IpAddress.String);
pIPAddr = pIPAddr->Next;
}
}
printf("按下回车键结束 ");
getchar();
return 0;
}

与c通过域名获取ip相关的知识