3

我目前正在升级我们的软件以支持 ipv6,同时我正在将主机名/IP 字段扩展到最大主机名大小。在 sun 文档中,这似乎可以达到 1025(netdb.h:#define NI_MAXHOST 1025 - 这是推荐的主机名分配定义),但是当我将超过 255 的主机名传递给 getaddrinfo 时,我得到“getaddrinfo failed: memory allocation失败”。我在 Sol10 盒子上进行测试。想法?

4

2 回答 2

4

NI_MAXHOST 用于 getnameinfo(),getaddrinfo() 使用 MAXHOSTNAMELEN。(见这里),这似乎是硬编码的——而且你几乎无能为力。

究竟为什么这些不同我不知道,但请参阅此处/此处了解有关最大主机名长度的一些信息。

于 2010-05-26T21:31:15.607 回答
0

您别无选择:这个 255 个字符的限制是标准。让我引用RFC 1123的第 2.1 节:

主机软件必须处理最多 63 个字符的主机名,并且应该处理最多 255 个字符的主机名。

于 2010-05-27T18:43:08.250 回答