网络编程 getaddrinfo 函数

解析网址,返回IP地址。

例子:

#include <iostream>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>//结构体addrinfo, in_addr
#include <netinet/in.h>
#include <arpa/inet.h>using namespace std;int main(){char* hostname = "www.cnblogs.com";//博客园的网址,返回实际IP地址addrinfo hints, *res;in_addr addr;int err;memset(&hints, 0, sizeof(addrinfo));hints.ai_socktype = SOCK_STREAM;hints.ai_family = AF_INET;if((err = getaddrinfo(hostname, NULL, &hints, &res)) != 0){printf("error %d : %s\n", err, gai_strerror(err));return 1;}addr.s_addr = ((sockaddr_in*)(res->ai_addr))->sin_addr.s_addr;printf("ip addresss: %s\n", inet_ntoa(addr));//博客园的网址,返回实际IP地址freeaddrinfo(res);return 0;
}

github源代码

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

转载于:https://www.cnblogs.com/xiaoshiwang/p/9763825.html

c/c++ 网络编程 getaddrinfo 函数相关推荐

  1. tcp/ip网络编程--accept()函数返回的套接字

    tcp/ip网络编程–accept()函数返回的套接字 套接字:1)套接字是对网络中不同主机的应用进程之间进行双向通信的端点的抽象:一个套接字就是网络进程通信的一端.[1] 2)套接字是用来与另一个进 ...

  2. UNIX网络编程-listen函数及其包裹函数介绍

    UNIX网络编程-listen函数及其包裹函数介绍 函数简介 #include<sys/socket.h>int listen(int sockfd,int backlog);返回:若成功 ...

  3. 网络编程 -- gethostbyname() 函数解析

          最近一段时间在看网络编程的东西,其中的一些函数很是好用,故留下笔记在这.       首先,在了解这个函数之前,我们需要知道一个结构 -- struct hostent struct ho ...

  4. linux网络编程常用函数详解与实例(socket--bind--listen--accept)

    常用的网络命令: netstat 命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可 ...

  5. UNIX网络编程——fcntl函数

    fcntl函数提供了与网络编程相关的如下特性: 非阻塞式I/O.  通过使用F_SETFL命令设置O_NONBLOCK文件状态标志,我们可以把一个套接字设置为非阻塞型. 信号驱动式I/O. 通过使用F ...

  6. 健壮的网络编程IO函数-RIO包

    RIO包 简介 Rio包即为Robust io函数包.包中函数是对Linux基本I/O函数的封装,使其更加健壮.高效,更适用于网络编程. 分析 Rio包由rio_t结构体和系列函数组成. 首先是两个不 ...

  7. C++网络编程Select函数用法

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如 connect.accept.recv或recvfrom这样的阻塞程序 ...

  8. Linux socket 网络编程常用函数总结

    1.字节序函数 #include <netinet.h> uint16_t htons(uint16_t host16bitvalue); uint32_t htonl(uint32_t  ...

  9. 网络编程_bind函数返回值

    #define  _WINSOCK_DEPRECATED_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include&l ...

最新文章

  1. 深入掌握Java技术 EJB调用原理分析
  2. 解决push的时候有时候会卡一下的问题
  3. python self
  4. poj 3660(Floyd求传递闭包)
  5. wordpress 静态化 linux,WordPress如何静态化
  6. java list 合并去重_java 怎么把多个list 合并成一个去掉重复的
  7. keepalived实现应用高可用
  8. Spring Boot 2.0.0.M7 生产环境部署
  9. android学习笔记---42_服务的生命周期
  10. 查看Android 系统发送的广播
  11. Android 逆向分析(三)之动态调试Smali
  12. java基本类型有缓冲区类型的有_Java基础(三十四)String、StringBuffer类和数据缓冲区Buffer类...
  13. MySQL服务 - 客户端工具mysql及mysqladmin使用介绍
  14. 如何从网站提取数据?
  15. 最优化方法 19:近似梯度下降
  16. 支付宝扫码支付php demo
  17. js中耦合与解耦问题总结
  18. IntelliJ IDEA下Git的配置与使用(命令行下)
  19. 会放弃的人生才会更洒脱
  20. 华为IPv4静态路由与NQA联动

热门文章

  1. angular for 停顿几秒后继续执行_Java 循环结构 for, while 及 do…while
  2. 疯狂python讲义pdf_重磅!Python再次第一,Java和C下降,凭什么?
  3. java日期转换_java日期格式转换
  4. nodejs mysql 同步_NodeJS实现同步的方法
  5. python 技能清单_Python清单
  6. Python Shutil模块
  7. Android自动调整TextView的大小
  8. 排序算法python实现_合并排序算法– Java,C和Python实现
  9. ios plist_iOS属性列表(plist)示例
  10. AngularJS自定义指令教程第2部分