C++域名解析代码段

本文展示了如何使用C++进行域名解析的代码实例,通过`gethostbyname`函数获取域名对应的IP地址,并用`inet_ntoa`转换为字符串形式。同时介绍了相关函数的使用和注意事项,包括需要链接`ws2_32.lib`库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++域名解析代码段  

#include <Winsock.h>
#include "atlstr.h"
#pragma comment(lib, "ws2_32.lib")

typedef struct sServer 
{
 USHORT nPort;
 char szIp[256];
}Server;

void Domain()
{
 char ch[256];

 printf("please input URL:");
 scanf_s("%s",&ch);
 
 HOSTENT *host = NULL;

 host = ::gethostbyname(ch);

 CString strIP;
 //char *strIP;
 int nPort = 0;

 if(host == NULL) return;

 char *ss = host->h_name;

 sockaddr_in sa;

 for(int nAdapter=0;host->h_addr_list[nAdapter];nAdapter++)
 {
  memcpy(&sa.sin_addr.s_addr, host->h_addr_list[nAdapter], host->h_length);
  strIP = inet_ntoa(sa.sin_addr);
  nPort = ntohs(sa.sin_port);
 }

 printf("解析得到的Ip=%s,Port=%d",strIP,nPort);
}

//补充知识说明:
//(1)使用 HOSTENT,需要加载头文件 <Winsock.h>;
//(2)使用CString, 需要加载头文件 "atlstr.h"
//(3)一个函数只能有一个返回值,如果想要一个函数有多个返回值的时候,最好把这几个返回值定义成一个结构体,或用形参的方式;
//(4)gethostbyname(),inet_ntoa(),ntohs(),需要添加#pragma comment(lib, "ws2_32.lib")
//或者 project->settings->link->library module中加入库ws2_32.lib  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值