加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:gethostbyname错误

发布时间:2020-12-13 14:14:32 所属栏目:PHP教程 来源:网络整理
导读:我使用gethostbyname()来获取应用程序中域的IP地址. 在某些情况下,也检查无效地址,如’50 .9.49′. echo gethostbyname('50.9.49'); // returns 50.9.0.49 在这种情况下,gethostbyname应返回false或未修改的无效IP地址.但是这些函数返回修改后的IP地址50.9.0
我使用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));
}
/* }}} */

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读