C 程序来显示主机名和 IP 地址

在本节中,我们将看到如何以更简单的方式查看本地系统的主机名和 IP 地址。我们将编写一个 C 程序来查找主机名和 IP。

使用了以下一些功能。这些功能有不同的任务。让我们看看功能和它们的任务。

功能描述
gethostname()它查找本地计算机的标准主机名。
gethostbyname()从主机数据库中查找主机名对应的主机信息
iten_ntoa()它将 IPv4 Internet 网络地址转换为点分十进制格式的 ASCII 字符串。


示例代码

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <errno.h>

#include <netdb.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

void check_host_name(int hostname) { //此函数返回主机名

   local computer

   if (hostname == -1) {

      perror("gethostname");

      exit(1);

   }

}

void check_host_entry(struct hostent * hostentry) { //从中查找主机信息

   host name

   if (hostentry == NULL) {

      perror("gethostbyname");

      exit(1);

   }

}

void IP_formatter(char *IPbuffer) { //将 IP 字符串转换为点分十进制

   format

   if (NULL == IPbuffer) {

      perror("inet_ntoa");

      exit(1);

   }

}

main() {

   char host[256];

   char *IP;

   struct hostent *host_entry;

   int hostname;

   hostname = gethostname(host, sizeof(host)); //找到主机名

   check_host_name(hostname);

   host_entry = gethostbyname(host); //查找主机信息

   check_host_entry(host_entry);

   IP = inet_ntoa(*((struct in_addr*) host_entry->h_addr_list[0]));

   //转换成IP字符串

   printf("Current Host Name: %s\n", host);

   printf("Host IP: %s\n", IP);

}

输出(在 Linux 系统上测试)

Current Host Name: soumyadeep-VirtualBox

Host IP: 127.0.1.1

以上是 C 程序来显示主机名和 IP 地址 的全部内容, 来源链接: utcz.com/z/317436.html

回到顶部