域名转换成IP地址

复制代码
#include <string.h>
#include <errno.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

#define MAXLINE 1024

int main(int argc, char **argv) {
    struct addrinfo *p, *listp, hints;
    char buf[MAXLINE];
    int rc, flags;

    if(argc!=2) {
        fprintf(stderr, "usage: %s <domain name>\n", argv[0]);
        exit(0);
    }

    memset(&hints, 0, sizeof(struct addrinfo));
    hints.ai_family=AF_INET;
    hints.ai_socktype=SOCK_STREAM;

    if((rc=getaddrinfo(argv[1], "ntp", &hints, &listp)) != 0) {
        fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(rc));
        exit(1);
    }

    flags=NI_NUMERICHOST;
    for(p=listp;p;p=p->ai_next) {
        if((rc=getnameinfo(p->ai_addr, p->ai_addrlen, buf, MAXLINE, NULL, 0, flags)) != 0) {
            fprintf(stderr, "getnameinfo error: %s\n", gai_strerror(rc));
            exit(1);
        }
        printf("%s\n", buf);
    }

    freeaddrinfo(listp);

    exit(0);
}
复制代码

 

posted @   东宫得臣  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示