三氧化硫和单质硫:用c++解析域名成Ip地址
来源:百度文库 编辑:中财网 时间:2024/04/30 02:31:55
#include
#include
#include
#pragma comment(lib, "ws2_32")
#include
#include
using namespace std;
void main()
{
int WSA_return;
WSADATA WSAData;
WSA_return=WSAStartup(0x0101,&WSAData);
/* 结构指针 */
char ch;
HOSTENT *host_entry;
cout<<"如果您已经输入完毕,请直接关闭退出"<
do{
char host_name[256];
cout<<"请您输入要解析的网址:";
cin.getline(host_name,256);
if(WSA_return==0)
{
/* 即要解析的域名或主机名 */
host_entry=gethostbyname(host_name);
printf("%s\n", host_name);
if(host_entry!=0)
{
string str1,str2,str3,str4,str5;
int i1=host_entry->h_addr_list[0][0]&0x00ff,
i2=host_entry->h_addr_list[0][1]&0x00ff,
i3=host_entry->h_addr_list[0][2]&0x00ff,
i4=host_entry->h_addr_list[0][3]&0x00ff;
stringstream strconvert1,strconvert2,strconvert3,strconvert4; printf("解析IP地址: "); } }
strconvert1<
strconvert2<
strconvert3<
strconvert4<
str5=str1+'.'+str2+'.'+str3+'.'+str4;
cout<<"以字符串形式输出:"<
printf("%d.%d.%d.%d\n",
(host_entry->h_addr_list[0][0]&0x00ff),//得到的id
(host_entry->h_addr_list[0][1]&0x00ff),
(host_entry->h_addr_list[0][2]&0x00ff),
(host_entry->h_addr_list[0][3]&0x00ff));
}
}while(ch!=27);
WSACleanup();
/*使用Socket的程序在使用Socket之前必须调用WSAStartup函数。
该函数的第一个参数指明程序请求使用的Socket版本,
其中高位字节指明副版本、低位字节指明主版本;
操作系统利用第二个参数返回请求的Socket的版本信息。
当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,
然后绑定找到的Socket库到该应用程序中。
以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。
该函数执行成功后返回0*/