Mar*_*ham 6 php ip gethostbyname
我gethostbyname()用来获取应用程序中域的IP地址.
在某些情况下,也检查无效地址,如'50 .9.49'.
echo gethostbyname('50.9.49'); // returns 50.9.0.49
Run Code Online (Sandbox Code Playgroud)
在这种情况下gethostbyname应该返回false或未修改的无效IP地址.但是这些函数返回修改后的IP地址50.9.0.49.
看起来像PHP中的错误.快速解决方案似乎是检查无效的数字地址之前,还有其他建议吗?
PHP gethostbyname实际上使用底层操作系统的结果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));
}
/* }}} */
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1162 次 |
| 最近记录: |