当前位置: 首页 > news >正文

php网站建设英文文献网络营销总结

php网站建设英文文献,网络营销总结,湖北省建设工程质量检测监管平台,阿里云主机 多个网站在Linux系统上用C将主机名称转换为IPv4、IPv6地址 功能 指定一个std::string类型的主机名称&#xff0c;函数解析主机名称为IP地址&#xff0c;含IPv4和IPv6&#xff0c;解析结果以std::vector<std::string>类型返回。解析出错或者解析失败抛出std::string类型的异常消…

在Linux系统上用C++将主机名称转换为IPv4、IPv6地址

功能

指定一个std::string类型的主机名称,函数解析主机名称为IP地址,含IPv4和IPv6,解析结果以std::vector<std::string>类型返回。解析出错或者解析失败抛出std::string类型的异常消息。

源代码 

以前随便写的一个解析域名为IP地址的功能现在需要支持IPv6,所以做了些调整。最后结果如下:

/*C++,将域名解析为IP地址(含IPv4和IPv6)
编译: g++ -o main main.cpp
执行:./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上开发调试,结果是OK的。解析结果支持IPv4和IPv6地址,主要参考材料是man手册。运行截图:

http://www.hkea.cn/news/66054/

相关文章:

  • 太仓网站建设有限公司网站设计公司怎么样
  • 网站去哪做在线crm软件
  • 做360手机网站快速汕头seo排名收费
  • 网站建设总做总结宜兴百度推广公司
  • 做毕业网站的周记外贸建站优化
  • 南昌市住房和城乡建设局网站百度官网推广平台电话
  • 真人做视频网站百度怎么发布广告
  • 网站页面优化包括怎么给网站做优化
  • 哪个网站用帝国cms做的软文素材网
  • 网站建设需要的资料深圳精准网络营销推广
  • 客户网站建设公司网站排名提升软件
  • 网站建设与维护试卷论文怎么在百度上做广告
  • 做博客网站要什么技术百度网站网址是多少
  • 河北建设厅官方网站八大员考试站长工具查询
  • 大连 做网站公司爱站工具包的主要功能
  • ps做简洁大气网站必应bing国内版
  • 做公司标志用哪个网站营销自动化
  • wordpress5.0.3厦门百度seo
  • 网站开发 企业 定制系统优化大师安卓版
  • 网站内链符号seo百度站长工具
  • 网站页面太多是否做静态seo优化软件
  • mac下怎么安装wordpress关键词排名优化易下拉霸屏
  • 国内做国外代购在哪个网站好百度平台客服怎么联系
  • 菏泽网站获客网站建设公司中国站长网入口
  • 黄冈网站建设推荐seo查询排名软件
  • 自己怎么做百度网站广州seo网站公司
  • 京东企业的电子网站建设百度seo教程网
  • 弥勒网站设计公司share群组链接分享
  • 网站建设栏目管理百度推广搜索排名
  • 企业管理类的网站全球搜是什么公司