PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法

在做FTP资料采集的时候,需要用到一个PHP函数ftp_connect,这个函数是建立一个新的 FTP 连接,如果成功返回一个连接标识,失败则返回 FALSE.ftp_connect() 打开一个 FTP 连接,参数 host 为要连接的服务器。host 后面不应以斜线结尾,前面也不需要用 ftp:// 开头。可选参数port 为要连接到的 FTP 器的端口号,如果没有设置或者为0,则会使用默认的端口 21 来连接。当我去执行我的这个程序的时候,发现报错如下:复制代码 代码如下:PHP Warning: ftp_connect(): php_network_getaddresses: getaddrinfo failed:经常之后发现是IPtables的问题,于是我开放了FTP的默认端口,于是就能正常使用了。遇到这种问题要首先检查自己的服务器的服务,其次就是防火墙问题了。

一个就是FTP Client打开一个端口,Server去连接这个端口来建立连接。这就是PORT方式。

显然,如果服务器打开了一个端口,就意味着向互联网打开了一个端口。所以PORT方式比PASV方式安全,但同时也存在客户端因为

防火墙问题而有可能连接失败。所以我认为一般默认就可以:)

$filelist = ftp_nlist($conn, ".");//简单列出文件名和目录

ftp_put($conn, "xyz.txt", "abc.txt", FTP_ASCII);//上传文件到服务器,参数(连接,远程生成的文件名,本地的文件名,FTP_ASCEE为文本传输/FTP_BINARY为二进制方式上传)

 

ftp_mkdir($conn, "mktest");//建立一个mktest的目录,如果成功则返回目录名字,如果不成功返回FALSE

记得使用ftp_quit来关闭联接:)

$filelist = ftp_rawlist($conn, ".");//详细列出文件名大小,权限,日期等等两个函数都返回数组

 

ftp_get($conn, "hers.zip", "his.zip", FTP_BINARY);//下载文件到本地服务器

下面是我总结的PHP的FTP常用函数大全:)

一、两个域名:www.domain.com和img.domain.com
二、在www域名的服务器中上传文件:

 

一个就是FTP Server打开一个端口,Client可以去连接这个端口来建立连接。这就是PASV方式。

======================================================

};
ftp_quit($conn);// 关闭联接,不然会一直开着占用资源

$ftp_server="img.domain.com";//要连接的服务器域名
$con=ftp_connect($ftp_server);//连接FTP服务器
ftp_login($con,"username","password");//发送用户名和密码
$tempstate=ftp_put($con,"drckness.jpg",$picname,FTP_BINARY)//以二进制方式上传文件
if($tempstate){
echo "上传成功";
unlik($picname);//删除www服务器上的图片当然你也可以保留
}else{
echo "上传未成功";

(说明:

ftp_alloc -- Allocates space for a file to be uploaded
ftp_cdup -- 切换到当前目录的父目录
ftp_chdir -- 在 FTP 服务器上切换当前目录
ftp_chmod -- Set permissions on a file via FTP
ftp_close -- 关闭一个活动的 FTP 连接
ftp_connect -- 建立一个新的 FTP 连接
ftp_delete -- 删除 FTP 服务器上的一个文件
ftp_exec -- 请求运行一条 FTP 命令
ftp_fget -- 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
ftp_fput -- 上传一个已经打开的文件到 FTP 服务器
ftp_get_option -- 返回当前 FTP 连接的各种不同的选项设置
ftp_get -- 从 FTP 服务器上下载一个文件
ftp_login -- 登录 FTP 服务器
ftp_mdtm -- 返回指定文件的最后修改时间
ftp_mkdir -- 建立新目录
ftp_nb_continue -- 连续获取/发送文件(non-blocking)
ftp_nb_fget -- Retrieves a file from the FTP server and writes it to an open file (non-blocking)
ftp_nb_fput -- Stores a file from an open file to the FTP server (non-blocking)
ftp_nb_get -- 从 FTP 服务器上获取文件并写入本地文件(non-blocking)
ftp_nb_put -- 存储一个文件至 FTP 服务器(non-blocking)
ftp_nlist -- 返回给定目录的文件列表
ftp_pasv -- 返回当前 FTP 被动模式是否打开
ftp_put -- 上传文件到 FTP 服务器
ftp_pwd -- 返回当前目录名
ftp_quit -- ftp_close() 的别名
ftp_raw -- Sends an arbitrary command to an FTP server
ftp_rawlist -- 返回指定目录下文件的详细列表
ftp_rename -- ü FTP ·÷¨
ftp_rmdir -- 删除一个目录
ftp_set_option -- è÷ FTP ±
ftp_site -- 向服务器发送 SITE 命令
ftp_size -- 返回指定文件的大小
ftp_ssl_connect -- Opens an Secure SSL-FTP connection
ftp_systype -- 返回远程 FTP 服务器的系统类型

为了初结化一个FTP联接,PHP提供了ftp_connect()这个函数,它使用主机名称和端口作为参数。在上面的例子里,主机名字为“ftp.server.com”;如果端口没指定,PHP将会使用“21”作为缺省端口来建立联接。
联接成功后ftp_connect()传回一个handle句柄;这个handle将被以后使用的FTP函数使用

FTP传输过程中要求建立一个专门的连接来传输数据,建立连接有两个方法:

php的ftp相关函数使用

本文由金沙官网线上发布于编程,转载请注明出处:PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法

您可能还会对下面的文章感兴趣: