我目前正在将openssl应用到我的应用程序中。当我必须设置BIO的主机名,IP地址和端口时,我的问题出现了。我一直都知道ip和hostname是一回事。有人可以解释一下这个区别。
答案 0 :(得分:12)
主机名是计算机名称和域名(例如machinename.domain.com)的组合。主机名的目的是可读性 - 它比IP地址更容易记忆。所有主机名都解析为IP地址,因此在很多情况下,它们都被称为可以互换。
答案 1 :(得分:0)
主机名可以有多个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