Edit report at https://bugs.php.net/bug.php?id=49493&edit=1
ID: 49493
Comment by: mikhey at zloy dot org
Reported by: tim987 at email dot com
Summary: Add IPv6 support in gethostbyname()
Status: Open
Type: Feature/Change Request
Package: Network related
Operating System: *
PHP Version: *
Block user comment: N
Private report: N
New Comment:
Please, Add IPv6 support in gethostbyname
Previous Comments:
------------------------------------------------------------------------
[2013-03-08 20:52:33] landy2005 at gmail dot com
any progress on this?
------------------------------------------------------------------------
[2009-12-23 04:21:47] vnegrier at optilian dot com
Here is a patch (applies to 5.3.1 ext/standard/dns.c)
If ipv6 is enabled, it will try first and fallback to ipv4 resolution if no
record is found.
--- dns.c.orig 2009-12-23 05:13:19.000000000 +0100
+++ dns.c 2009-12-23 05:17:14.000000000 +0100
@@ -251,16 +251,27 @@
{
struct hostent *hp;
struct in_addr in;
+ char* txt_addr;
+#if HAVE_IPV6
+ char txt_addr6[128];
- hp = gethostbyname(name);
+ hp = gethostbyname2(name, AF_INET6);
if (!hp || !*(hp->h_addr_list)) {
- return estrdup(name);
+#endif
+ hp = gethostbyname(name);
+ if (!hp || !*(hp->h_addr_list)) {
+ return estrdup(name);
+ }
+ memcpy(&in.s_addr, *(hp->h_addr_list), sizeof(in.s_addr));
+ txt_addr = inet_ntoa(in);
+#if HAVE_IPV6
+ } else {
+ inet_ntop(AF_INET6, *(hp->h_addr_list), txt_addr6,
sizeof(txt_addr6));
+ txt_addr = txt_addr6;
}
-
- memcpy(&in.s_addr, *(hp->h_addr_list), sizeof(in.s_addr));
-
- return estrdup(inet_ntoa(in));
+#endif
+ return estrdup(txt_addr);
}
/* }}} */
------------------------------------------------------------------------
[2009-09-08 03:42:15] tim987 at email dot com
Description:
------------
The php function gethostbyname currently only returns IPv4 addresses as stated
here:
http://us2.php.net/manual/en/function.gethostbyname.php
My feature request is, it should be able to return IPv6 addresses too.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=49493&edit=1