Bug #52395 [Opn->Fbk]: ftp_connect only uses DNS hostnames
| From: | cmb@php.net | Date: | Fri, 19 Feb 2021 16:06:14 +0000 |
| Subject: | Bug #52395 [Opn->Fbk]: ftp_connect only uses DNS hostnames | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-232285@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=52395&edit=1
ID: 52395
Updated by: cmb@php.net
Reported by: john-ubuntu at cornerstonelinux dot co dot uk
Summary: ftp_connect only uses DNS hostnames
-Status: Open
+Status: Feedback
Type: Bug
Package: FTP related
Operating System: Ubuntu 10.04
PHP Version: 5.3.2
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Is this still unresolved for any of the actively supported PHP
versions[1]?
[1] <https://www.php.net/supported-versions.php>
Previous Comments:
------------------------------------------------------------------------
[2010-09-23 00:13:11] emperorshishire at gmail dot com
I just recently ran into this problem. I'm using proftpd as an ftpd. Proftpd was initially
configured to run from inetd, but I reconfigured it to run standalone. The difference was that when
configured to run from inetd, it was running only on ipv4, and when reconfigured to run standalone,
it runs on both ipv4 and ipv6. Something is definately going on with ipv4/6 resolution here.
------------------------------------------------------------------------
[2010-07-22 14:36:59] john-ubuntu at cornerstonelinux dot co dot uk
Setting status back to "Open" as feedback provided.
------------------------------------------------------------------------
[2010-07-21 22:53:56] john-ubuntu at cornerstonelinux dot co dot uk
The FTP server is running only on the IPv4 localhost:
--------
$ sudo netstat -vnutlp | grep ftpd
tcp 0 0 127.0.0.1:21 0.0.0.0:* LISTEN 604/vsftpd
--------
mgdm@php.net, you suggest that PHP is only resolving IPv6 addresses.
How can I find out if that is the case, and how can I change that?
Also why would this only effect the FTP functions and not effect the
IMAP and SMTP functions?
Could you also run 'host -v localhost' and compare the output to my
example above to confirm that the system you are using does not have
a DNS server that resolves "localhost" (because most do).
------------------------------------------------------------------------
[2010-07-21 22:43:09] mgdm@php.net
I just tried that using Ubuntu's PHP on 10.04, and it doesn't have that problem. Neither
does a plain PHP. Are you sure it's not something local to your setup (like the FTP server
listening on a v4 address and PHP resolving localhost to v6?)
------------------------------------------------------------------------
[2010-07-21 22:12:33] john-ubuntu at cornerstonelinux dot co dot uk
New description with better line wrapping:
If "localhost" is present in /etc/hosts but does not resolve via DNS then ftp_connect will
not connect to it.
Most well setup DNS systems will have a "localhost." zone that resolves to 127.0.0.1, but
this is not compulsory and some ISPs do not do this.
It is traditional for UNIX systems to be able to use local names as defined in /etc/hosts for basic
names resolution before DNS.
This bug does not appear to occur in other PHP network functions such as IMAP or SMTP, and did not
appear in PHP 5.2.4 on Ubuntu 8.04 (and earlier).
I first noticed this bug when I upgrade a mail server from Ubuntu 8.04 to Ubuntu 10.04 and the
Squirrelmail autorespond plugin (which uses ftp_connect) reported a "failed to connect"
error.
To replicate this problem you will have to test on a system that does not resolve
"localhost" via DNS. Use the "host" command to check you can not do this:
--------
$ host -v localhost
Trying "localhost.uk.fabit.net"
Trying "localhost"
Host localhost not found: 3(NXDOMAIN)
--------
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=52395
--
Edit this bug report at https://bugs.php.net/bug.php?id=52395&edit=1