PHP:gethostbyname错误

前端之家收集整理的这篇文章主要介绍了PHP:gethostbyname错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用gethostbyname()来获取应用程序中域的IP地址.

在某些情况下,也检查无效地址,如’50 .9.49′.

  1. 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.
  1. /* {{{ PHP_gethostbyname */
  2. static char *PHP_gethostbyname(char *name)
  3. {
  4. struct hostent *hp;
  5. struct in_addr in;
  6.  
  7. hp = gethostbyname(name);
  8.  
  9. if (!hp || !*(hp->h_addr_list)) {
  10. return estrdup(name);
  11. }
  12.  
  13. memcpy(&in.s_addr,*(hp->h_addr_list),sizeof(in.s_addr));
  14.  
  15. return estrdup(inet_ntoa(in));
  16. }
  17. /* }}} */

猜你在找的PHP相关文章