gpt4 book ai didi

PHP:gethostbyname 错误

转载 作者:可可西里 更新时间:2023-11-01 13:15:07 24 4
gpt4 key购买 nike

我正在使用 gethostbyname() 获取应用程序中域的 IP 地址。

在某些情况下,还会检查无效地址,例如“50.9.49”。

echo gethostbyname('50.9.49'); // returns 50.9.0.49

在这种情况下,gethostbyname 应该返回 false 或未修改的无效 ip 地址。然而,这些函数返回修改后的 IP 地址 50.9.0.49

看起来像是 php 中的错误。快速修复似乎是之前检查无效数字地址,还有其他建议吗?

最佳答案

PHP 的gethostbyname 实际上是uses底层操作系统的 gethostbyname 结果,例如来自 Linux 的 netdb.h 或 Windows 的 Winsock2.h。实际产生返回值的是那些函数,而不是 PHP。

/* {{{ php_gethostbyname */
static char *php_gethostbyname(char *name)
{
struct hostent *hp;
struct in_addr in;

hp = gethostbyname(name);

if (!hp || !*(hp->h_addr_list)) {
return estrdup(name);
}

memcpy(&in.s_addr, *(hp->h_addr_list), sizeof(in.s_addr));

return estrdup(inet_ntoa(in));
}
/* }}} */

关于PHP:gethostbyname 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10623408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com