中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站策劃與運營課程認(rèn)知如何建網(wǎng)站詳細步驟

網(wǎng)站策劃與運營課程認(rèn)知,如何建網(wǎng)站詳細步驟,建設(shè)網(wǎng)站后期人員薪酬,七臺河新聞聯(lián)播回放在Linux系統(tǒng)上用C將主機名稱轉(zhuǎn)換為IPv4、IPv6地址 功能 指定一個std::string類型的主機名稱&#xff0c;函數(shù)解析主機名稱為IP地址&#xff0c;含IPv4和IPv6&#xff0c;解析結(jié)果以std::vector<std::string>類型返回。解析出錯或者解析失敗拋出std::string類型的異常消…

在Linux系統(tǒng)上用C++將主機名稱轉(zhuǎn)換為IPv4、IPv6地址

功能

指定一個std::string類型的主機名稱,函數(shù)解析主機名稱為IP地址,含IPv4和IPv6,解析結(jié)果以std::vector<std::string>類型返回。解析出錯或者解析失敗拋出std::string類型的異常消息。

源代碼?

以前隨便寫的一個解析域名為IP地址的功能現(xiàn)在需要支持IPv6,所以做了些調(diào)整。最后結(jié)果如下:

/*C++,將域名解析為IP地址(含IPv4和IPv6)
編譯: g++ -o main main.cpp
執(zhí)行:./main
效果:$ ./main 
13.226.120.15
13.226.120.23
13.226.120.56
13.226.120.3
2600:9000:21e1:1200:1c:b3b0:7700:93a1
2600:9000:21e1:bc00:1c:b3b0:7700:93a1
2600:9000:21e1:9a00:1c:b3b0:7700:93a1
2600:9000:21e1:4e00:1c:b3b0:7700:93a1
2600:9000:21e1:a200:1c:b3b0:7700:93a1
2600:9000:21e1:3600:1c:b3b0:7700:93a1
2600:9000:21e1:1a00:1c:b3b0:7700:93a1
2600:9000:21e1:1800:1c:b3b0:7700:93a1*/// getaddrinfo, gai_strerror, freeaddrinfo
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>// inet_ntop
#include <arpa/inet.h>// strerror
#include <cstring>#include <string>
#include <vector>
#include <iostream>// 域名解析為IP地址,返回地址列表。
std::vector<std::string> hostToIPs(const std::string& host) {std::vector<std::string> addressList;addrinfo hints;hints.ai_family = AF_UNSPEC;hints.ai_socktype = SOCK_STREAM;hints.ai_protocol = 0;hints.ai_flags = 0;hints.ai_canonname = nullptr;hints.ai_addr = nullptr;hints.ai_next = nullptr;addrinfo* result = nullptr;auto res = getaddrinfo(host.c_str(), nullptr, &hints, &result);if (0 != res) {throw std::string(gai_strerror(res));}if (nullptr != result) {int bufferSize = 64;char buffer[64];void* pointer;for (auto rp = result; rp != nullptr; rp = rp->ai_next) {switch (rp->ai_family) {case AF_INET:pointer = (void*)&(((sockaddr_in*)(rp->ai_addr))->sin_addr);break;case AF_INET6:pointer = (void*)&(((sockaddr_in6*)(rp->ai_addr))->sin6_addr);break;default:continue;}if (nullptr == inet_ntop(rp->ai_family, pointer, buffer, bufferSize)) {freeaddrinfo(result);throw std::string("Run inet_ntop fail, errno is ") + std::to_string(errno)+ ", message: " + std::string(strerror(errno));}addressList.emplace_back(std::string(buffer));}freeaddrinfo(result);}if (addressList.size() <= 0) {throw std::string("address list is empty");}return addressList;
}int main() {try {for (const auto& address : hostToIPs("www.english.com")) {std::cout << address << std::endl;}} catch (const std::string& e) {std::cout << e << std::endl;}return 0;
}

運行截圖

程序在Ubuntu上開發(fā)調(diào)試,結(jié)果是OK的。解析結(jié)果支持IPv4和IPv6地址,主要參考材料是man手冊。運行截圖:

http://www.risenshineclean.com/news/22987.html

相關(guān)文章:

  • 廣告設(shè)計樣板圖網(wǎng)站優(yōu)化外包推薦
  • 0基礎(chǔ)做網(wǎng)站工具網(wǎng)站建設(shè)的意義和目的
  • wordpress做seo好做seo搜索引擎優(yōu)化步驟
  • wordpress 刪除站點關(guān)鍵詞優(yōu)化師
  • 移動網(wǎng)站 做優(yōu)化深圳百度競價托管公司
  • 企業(yè)網(wǎng)站建設(shè)意義站外推廣怎么做
  • 互聯(lián)網(wǎng)建設(shè)及服務(wù)領(lǐng)域信用建設(shè)網(wǎng)址seo優(yōu)化排名
  • c語言做網(wǎng)站后臺青島百度代理公司
  • 新網(wǎng)站優(yōu)化怎么做手機免費建站app
  • 網(wǎng)站沒有管理員權(quán)限設(shè)置網(wǎng)站設(shè)計公司哪家專業(yè)
  • 如何創(chuàng)建企業(yè)網(wǎng)站哪有培訓(xùn)seo
  • 網(wǎng)站建設(shè)合同 簡單手游推廣個人合作平臺
  • 鄭州做旅游網(wǎng)站的公司百度公司官網(wǎng)
  • 商標(biāo)圖案大全大圖 logo上海牛巨微seo優(yōu)化
  • 中國建設(shè)銀行網(wǎng)站會員用戶名合肥網(wǎng)站制作推廣
  • 微信群公告如何做網(wǎng)站鏈接好口碑的關(guān)鍵詞優(yōu)化
  • 成都網(wǎng)站關(guān)鍵排名2023b站免費推廣入口
  • 巢湖商城網(wǎng)站建設(shè)seo實戰(zhàn)密碼在線閱讀
  • 廣州網(wǎng)站建設(shè)外包接推廣怎么收費
  • 網(wǎng)站開發(fā)實訓(xùn)意義南寧今日頭條最新消息
  • 做黑網(wǎng)站賺錢嗎百度站長平臺
  • 網(wǎng)絡(luò)運維工程師證湖南優(yōu)化公司
  • 怎么做用戶調(diào)研網(wǎng)站重慶專業(yè)做網(wǎng)站公司
  • 商丘做網(wǎng)站漢獅網(wǎng)絡(luò)廣州百度關(guān)鍵詞推廣
  • 網(wǎng)站正在建設(shè)中的圖片素材什么是seo搜索引擎優(yōu)化
  • 鄭州市有做網(wǎng)站的嗎東莞seo廣告宣傳
  • 貴陽建設(shè)工程招投標(biāo)網(wǎng)站谷歌推廣代理商
  • 網(wǎng)站建設(shè)中圖標(biāo)網(wǎng)絡(luò)營銷方式方法
  • 西安做企業(yè)網(wǎng)站網(wǎng)站點擊軟件排名
  • 婚慶攝影企業(yè)網(wǎng)站企業(yè)seo顧問服務(wù)