`
nswish
  • 浏览: 108019 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux下使用C语言编写获取某个域名IP地址的程序

 
阅读更多

根据《UNIX环境高级编程(第二版)》的相关章节的描述,编写了这个程序,以验证对所学知识的理解是否正确。

 

/*
* 获取某个域名的ip地址,以列表形式打印。
*
* 作者: nswish
* 2012-01-30
*
* 在如下环境编译通过:
* Kubuntu 11.1
* gcc version 4.6.1
*/
#include <stdio.h>
#include <netdb.h>
#include <stdlib.h>

main(int argc, char *argv[]){
    struct addrinfo * res, *pt;
    struct sockaddr_in *sinp;
    const char *addr;
    char abuf[INET_ADDRSTRLEN];
    int succ=0,i=0;

    if(argc == 1)
    {
        printf("USAGE: getip <server name>\nFor example:\n    getip www.google.com\n");
        exit(1);
    }

    succ = getaddrinfo(argv[1], NULL, NULL, &res);
    if(succ != 0)
    {
        printf("Can't get address info! error code = %d", succ);
        exit(succ);
    }

    for(pt=res, i=0; pt != NULL; pt=pt->ai_next, i++){
        sinp = (struct sockaddr_in *)pt->ai_addr;
        addr = (const char *)inet_ntop(AF_INET, &sinp->sin_addr, abuf, INET_ADDRSTRLEN);
        printf("%2d. IP=%s\n", i, addr);
    }
}
 

将以上代码保存在名为getip.c的文件中,然后使用命令 gcc getip.c -o getip。

如果系统中没有gcc编译程序,可执行sudo apt-get install gcc来安装。

 

 

 

1
1
分享到:
评论

相关推荐

    纯C语言实现DNS服务端与客户端程序

    这个程序实现了DNS查询的基本功能,它可以向本地DNS服务器或公共DNS服务器发送请求,获取特定域名对应的IP地址。在C语言中,这通常涉及到socket编程,使用`socket()`函数创建套接字,`connect()`函数建立连接,`send...

    Linux课程设计---Linux环境下C语言程序设计.doc

    设计题目包括四个程序,旨在巩固C语言基础知识,熟悉Linux基本操作,训练在Linux环境下编写C语言程序的能力,以及培养团队合作和创新能力。 1. **程序一**:设计一个面向小学生的数学运算程序,进行10以内的加减法...

    linux下C语言网络编程

    获取主机信息通常指的是DNS解析,即根据域名查找对应的IP地址。这可以通过`gethostbyname()`或更现代的`getaddrinfo()`函数实现。此外,还可以使用`nslookup`命令或`libresolv`库进行更复杂的DNS查询。 在实验中,...

    c语言 获取本机信息

    `getaddrinfo`用于获取域名的IP地址,而`getifaddrs`用于获取所有网络接口的地址信息。以下是一个简单的例子: ```c #include #include #include void print_ip(struct ifaddrs *ifa) { if (ifa-&gt;ifa_addr...

    linux常用服务,以及C语言入门代码

    3. DNS(Domain Name System):域名解析服务,将人类可读的域名转换为IP地址,保证网络通信的正常进行。 4. DHCP(Dynamic Host Configuration Protocol):自动分配或动态更新网络设备的IP地址和其他配置信息。 ...

    局域网和因特网检测程序Linux C语言

    这个名为“局域网和因特网检测程序Linux C语言”的项目聚焦于利用C语言在Linux环境下编写网络监测工具,帮助用户检测网络连接状况,包括局域网和互联网的连通性。下面将详细阐述其中涉及的主要知识点: 1. **套接字...

    libdns库 纯C语言编写

    **DNS(Domain Name System)**是互联网上的一个关键服务,它负责将域名转换为IP地址,使得用户可以方便地通过域名访问网站。在IT行业中,理解DNS的工作原理以及如何与其交互是至关重要的。本文将深入探讨`libdns`库...

    C语言编译的基于Linux下的client与server的DNS与查询

    在本项目中,我们关注的是使用C语言在Linux环境下实现客户端(client)和服务器端(server)的DNS查询功能。DNS(Domain Name System)是互联网上的一种服务,它将人类可读的域名转换为计算机可识别的IP地址。在TCP/...

    instance_message.rar_C语言 路由器_linux_linux 服务器_linux 路由器_即时通信

    - **地址解析模块**:处理IP地址和域名的转换,为数据传输提供准确的目标地址。 - **路由模块**:根据地址解析的结果和网络状况,决定消息的最佳传输路径,提高通信效率和可靠性。 4. **网络编程** 在Linux下,...

    C语言Socket简单编程指南

    文档中可能包含了如何用C语言编写一个简单的服务器和客户端程序的示例,这些示例通过逐步引导的方式,帮助读者理解并掌握Socket编程。 ### 数据包Sockets、阻塞以及select()多路同步I/O 在Socket编程中,理解...

    Likeping.rar_ping 域名

    描述部分进一步解释了该项目的核心内容,即在Linux系统中,开发了一个用C语言编写的简易版ping程序,它具备向网络上的主机(通过域名或IP地址)发送ICMP回显请求的能力。这种程序对于网络管理员或开发者来说非常实用...

    Linux下DNS反向解析程序C原代码

    这段C代码旨在实现一个DNS反向解析程序,即从IP地址获取对应的域名。以下是关于这个程序及其涉及的技术点的详细说明: 1. **DNS反向解析**:反向解析是指通过IP地址查找对应域名的过程。在实际网络环境中,这有助于...

    DNS 解析协议 c 函数, 实例, 方便构造自己的非阻塞解析函数, 适用于任何平台

    DNS(Domain Name System)是互联网上的一项核心服务,它负责将域名转换为对应的IP地址,以便于用户通过易记的域名访问网站或服务。在IT领域,理解和掌握DNS解析协议对于网络编程至关重要,特别是当你需要编写自定义...

    linux c 获取本机公网IP的实现方法

    在Linux环境中,使用C语言获取本机公网IP的实现主要涉及到网络编程的知识,包括套接字(socket)编程、域名解析(DNS解析)以及HTTP协议的简单应用。下面将详细阐述这一过程: 首先,我们需要创建一个套接字,这是...

    C语言SOCKET编程指南

    在Linux环境下,使用C语言进行SOCKET编程是网络编程领域的基础和重要技能之一。 首先,套接字(Socket)是使用标准的Unix文件描述符进行程序间通信的一种方式。在Unix系统中,一切皆文件,这意味着无论是文件、管道...

    LINUX日常代码集锦

    在Linux环境下,DNS(域名系统)的使用对于日常网络编程而言极为重要。DNS的主要作用是将域名转换成IP地址,从而方便用户访问互联网上的各种资源。尽管DNS的工作原理对于许多开发者来说较为复杂,但是掌握其基本知识...

    linux网络编程和TCP-IP详解

    首先,Linux网络编程涉及到在Linux操作系统环境下编写网络应用程序。这包括使用套接字(socket)API来实现客户端和服务器之间的通信。套接字是进程间通信(IPC)的一种形式,特别适合于网络应用,因为它允许不同...

    LINUX安装与配置简明手册

    3.2.7 为一个专用的本地网络分配IP地址 25 3.2.8 从引导管理程序失误中恢复NT 25 3.2.9 制作一张定制的Linux操作系统 引导盘 26 3.2.10 设置直接引导启动到Caldera 发行版本 26 3.2.11 直接引导启动到Caldera发行...

Global site tag (gtag.js) - Google Analytics