使用getaddrinfo函数来获取并打印出www.baidu.com的所有IP地址(IPv4和IPv6)

news/2024/9/30 23:23:20
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <arpa/inet.h>int main() {struct addrinfo hints, *res, *p;int status;char ipstr[INET6_ADDRSTRLEN];// 设置hints结构体,指定我们想要获取的地址类型memset(&hints, 0, sizeof hints);hints.ai_family = AF_UNSPEC; // AF_INET 或 AF_INET6 以获取 IPv4 或 IPv6 地址hints.ai_socktype = SOCK_STREAM; // TCP 流套接字// 获取地址信息if ((status = getaddrinfo("www.baidu.com", NULL, &hints, &res)) != 0) {fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(status));return 1;}printf("IP addresses for www.baidu.com:\n\n");// 遍历所有获取到的地址for(p = res; p != NULL; p = p->ai_next) {void *addr;char *ipver;// 获取IP地址if (p->ai_family == AF_INET) { // IPv4struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr;addr = &(ipv4->sin_addr);ipver = "IPv4";} else { // IPv6struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr;addr = &(ipv6->sin6_addr);ipver = "IPv6";}// 将IP地址转换为字符串inet_ntop(p->ai_family, addr, ipstr, sizeof ipstr);printf("%s: %s\n", ipver, ipstr);}// 释放addrinfo结构体freeaddrinfo(res);return 0;
}

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/45096.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

C138 线段树分治 P2056 [ZJOI2007] 捉迷藏

视频链接:C138 线段树分治 P2056 [ZJOI2007] 捉迷藏_哔哩哔哩_bilibili P2056 [ZJOI2007] 捉迷藏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 线段树分治 O(nlognlogn) #include <iostream> #include <cstring> #include <algorithm> #include <…

[lnsyoj118/luoguP3369]普通平衡树

平衡树 Treap题意 维护一个数据结构,要求支持插入,删除,根据排名查数,根据数查排名,查询前驱,查询后继\(6\)个操作 sol 考虑到后四个查询的操作,会发现使用二叉搜索树(BST)完全可以实现 为了完成这四个操作,需要在每个节点记录\(3\)个值:\(key\) 表示当前节点的数 \(c…

牛客周赛46(思路待补)

比赛链接:牛客周赛46赛时感受 本场参加的是内测,多亏了内测群的佬提供的思路,得以AK。 ABC都是简单的签到题,D稍微需要分类一下,EF有点算法知识,E可以使用前缀和+二分搜索过掉,但是听说好像还能使用离散化树状数组等等,F是数学知识,隔板法和求质数、求组合…

[TinyRenderer] Chapter1 p3 Line

(注:本小节不是对划线算法事无巨细的证明,如果你需要更加系统的学习,请跳转至文末的参考部分) 如果你是一名曾经学习过图形学基础的学生,那么你一定对画线算法稔熟于心,中点划线算法,Bresenham算法。其中,现代光栅化器中使用最多的就是Bresenham算法,它以去除了除法和…

3个月搞定计算机二级C语言!高效刷题系列进行中

前言 大家好,我是梁国庆。 计算机二级应该是每一位大学生的必修课,相信很多同学的大学flag中都会有它的身影。 我在大学里也不止一次的想要考计算机二级office,但由于种种原因,备考了几次都不了了之。 这一次我想换个目标! 备考计算机二级C语言 今天山东省考试院发布了关于…

讯飞有一个可以根据描述文本自动生成PPT的AI接口,有趣

文档:https://www.xfyun.cn/doc/spark/PPTGeneration.html 价格方面提供了免费1000点的额度,生成一次是10点,正好100次,如果要购买的话最低要购买1344元的,没有按量付费的模式,个人小开发者可买不起。 让我们跑起来玩玩,官方提供了python的sdk,下载到本地: 不想下载sd…

RSS 解析:全球内容分发的利器及使用技巧

RSS(Really Simple Syndication)是一种 XML 格式,用于网站内容的聚合和分发,让用户能快速浏览和跟踪更新。RSS 文档结构包括 `<channel>` 和 `<item>` 元素,允许内容创作者分享标题、链接和描述。通过 RSS,用户可以定制新闻源,过滤不相关信息,提高效率。RS…

2024.6.10漏洞探针

探针(扫描器) 1、nmap漏洞库,根目录下scripts中调用2、Goby(红队版) 直接输入ip扫描资产,漏洞库较少; 3、Nessus 本地安装: 下载安装普通版;注册获取验证码; 注册用户 nessus,nessus123 漏洞利用 1、工具框架 metasploit和searchsploit 忍者系统可以一键使用msf;2、…