打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用c++解析域名成Ip地址

#include <windows.h>
#include <iostream>
#include <winsock.h>
#pragma comment(lib, "ws2_32")
#include <sstream>
#include<string>


using namespace std;

void main()
{

int WSA_return;
WSADATA WSAData;

WSA_return=WSAStartup(0x0101,&WSAData);

/* 结构指针 */ 
char ch;
HOSTENT *host_entry;

cout<<"如果您已经输入完毕,请直接关闭退出"<<endl;
/*设置循环不断的读入*/


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;
   strconvert1<<i1;//把int型转换成string类型的数据
   strconvert1>>str1;
   strconvert2<<i2;
   strconvert2>>str2;
   strconvert3<<i3;
   strconvert3>>str3;
   strconvert4<<i4;
   strconvert4>>str4;
   str5=str1+'.'+str2+'.'+str3+'.'+str4;
   cout<<"以字符串形式输出:"<<str5<<endl;

printf("解析IP地址: ");
    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*/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
根据域名获取服务器IP地址 MTK
还在用传统的方式驱动一个通信模组?不如一起来学习下TOS的AT模组框架吧!
获取设备目前ip
Linux C 获取本机相关信息
如何基于TCP/IP协议进行MFC Socket网络通讯编程
socket 中读取IP地址的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服