【发布时间】:2014-12-19 20:36:21
【问题描述】:
我目前正在我的应用程序中实现 openssl。当我不得不设置 BIO 的主机名、IP 地址和端口时,我的问题就出现了。我一直都知道 ip 和主机名是同一个东西。谁能解释一下区别。
【问题讨论】:
标签: port ip-address hostname
我目前正在我的应用程序中实现 openssl。当我不得不设置 BIO 的主机名、IP 地址和端口时,我的问题就出现了。我一直都知道 ip 和主机名是同一个东西。谁能解释一下区别。
【问题讨论】:
标签: port ip-address hostname
主机名是您的机器名称和域名的组合(例如 machinename.domain.com)。主机名的目的是可读性——它比 IP 地址更容易记住。所有主机名都解析为 IP 地址,因此在许多情况下,它们被称为可以互换。
【讨论】:
一个主机名可以有多个 IP 地址,但反过来不行。如果你退房
https://beej.us/guide/bgnet/html/multi/gethostbynameman.html
您会看到 gethostbyname() 返回特定主机的地址列表。为了证明这一点,这里有一个小程序:
#include <stdio.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
int main(int argc, char** argv)
{
if (argc < 2)
{
printf("usage: %s hostname\n", argv[0]);
return 0;
}
struct in_addr addr;
struct hostent* he = gethostbyname(argv[1]);
if (!he)
{
perror("gethostbyname");
return 1;
}
printf("IP addresses for %s:\n\n", he->h_name);
for (int i = 0; he->h_addr_list[i]; i++)
{
memcpy(&addr, he->h_addr_list[i], sizeof(struct in_addr));
printf("%s\n", inet_ntoa(addr));
}
return 0;
}
进入 www.yahoo.com,我得到以下信息:
98.137.246.8
98.137.246.7
98.138.219.232
98.138.219.231
【讨论】: