網域名稱解析成IP地址C++

來源:互聯網
上載者:User

標籤:

#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*/

網域名稱解析成IP地址C++

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.