ping ftp地址 怎么用ping命令来确定这个ftp地址通不通呢 我用Ping ftp://192.168.18.18格式不对。光是ping ip地址的话是可以的。哪位大哥指点下 如何来判断这个ftp地址能不能通? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 telnet 192.168.18.18 21 (ftp默认使用21)如果显示一个空白窗口就说明通了。 我要写在程序里面Process pro = new Process(); pro.StartInfo.FileName = @"ftp.exe"; pro.StartInfo.Arguments = "192.168.18.18"; pro.StartInfo.UseShellExecute = false; pro.StartInfo.RedirectStandardOutput = true; pro.Start(); string output = pro.StandardOutput.ReadToEnd(); return output;这样返回值能得到ping通的结果,但是有个空白命令窗口,解决中 Ping命令是走ICMP协议,属于网络层协议,而FTP协议是应用层协议...根本风马牛不相及...能Ping通只表示两台计算机网络连通、均支持TCP/IP、目标机器没有拦截ICMP消息,仅此而已...想知道FTP服务是否可以访问只能用应用层协议如FTP协议或TELNET协议... 不需要这种笨办法...用System.Net.FtpWebRequest类操作,去看MSDN... [Quote=引用 5 楼 vrhero 的回复:]我就是用的FtpWebRequest。但是在执行的时候Timeout属性不起作用,给一个错误的ftp地址会造成长时间的程序未响应,所以我想在操作之前先做判断能否Ping的通。FtpWebRequest request = (FtpWebRequest)WebRequest.Create(upUri); request.Method = "STOR"; request.Timeout = 1000; request.UsePassive = false; request.Credentials = new NetworkCredential("sa", "sa"); Stream requestStream = null; FileStream stream2 = null; FtpWebResponse ftpWebResponse = null; try { requestStream = request.GetRequestStream(); stream2 = File.Open(upFile, FileMode.Open); byte[] buffer = new byte[0x400]; while (true) { int count = stream2.Read(buffer, 0, buffer.Length); if (count == 0) { break; } requestStream.Write(buffer, 0, count); } if (requestStream != null) { requestStream.Close(); requestStream = null; } ftpWebResponse = (FtpWebResponse)request.GetResponse(); } 这个我试过可以实现 但是跳出的ftp命令窗口影响,不知道怎么解决! 使用这个 ftp.exe怎么结束 我试了之后很占CPU,机子都停止了public string CheckFtp(string DomainName, String port, String address, string FtpUserName, string FtpUserPwd) { string UriStr = "ftp://" + DomainName + ":" + port + "//" + address; Uri uri = new Uri(UriStr); FtpWebRequest ftprequest = (FtpWebRequest)WebRequest.Create(uri); ftprequest.Credentials = new NetworkCredential(FtpUserName, FtpUserPwd); ftprequest.Method = WebRequestMethods.Ftp.ListDirectory; ftprequest.Timeout = 3000; FtpWebResponse ftpResponse = (FtpWebResponse)ftprequest.GetResponse(); ftpResponse.Close(); return ftpResponse.BannerMessage + " " + ftpResponse.WelcomeMessage; } [Quote=引用 9 楼 rczjp 的回复:]我也在考虑这样 效率更低了。 ftprequest.Timeout = 3000;没作用我郁闷啊 再加一句代码pro.StartInfo.CreateNoWindow=true; 木有用,愿意就是想连接不上ftp就catch出来避免程序无响应,现在绕个大圈子,同事叫我用委托来写,试了下貌似还是不行。 telnet 192.168.18.18 21 (ftp默认使用21)如果显示一个空白窗口就说明通了。 ftprequest.Timeout = 3000;-----------------------------在你的web.config中设置 ftp传输超时。 请问各位如何分析一个项目? C#如何检索远程计算机里面的文件? 泛型方法参数 的一个问题 C# 生成随机验证码的问题? ②email发功能(C#基于SMTP) 菜鸟勿进 如何做(设计)winform漂亮界面 myResult=dataReader.GetString(0);当该字段为空时候就出错,怎么才能解决?? 请问下载AJAX中如何用FileUpLoad来实现文件上传啊??? C#里有没有类似Delphi中ShellTreeView的控件 C#启动问题 c#伸缩式窗口设计 奇怪问题,计时器开启对程序的影响
Process pro = new Process();
pro.StartInfo.FileName = @"ftp.exe";
pro.StartInfo.Arguments = "192.168.18.18";
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardOutput = true;
pro.Start();
string output = pro.StandardOutput.ReadToEnd();
return output;
这样返回值能得到ping通的结果,但是有个空白命令窗口,解决中
我就是用的FtpWebRequest。但是在执行的时候Timeout属性不起作用,给一个错误的ftp地址会造成长时间的程序未响应,所以我想在操作之前先做判断能否Ping的通。
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(upUri);
request.Method = "STOR";
request.Timeout = 1000;
request.UsePassive = false;
request.Credentials = new NetworkCredential("sa", "sa");
Stream requestStream = null;
FileStream stream2 = null;
FtpWebResponse ftpWebResponse = null;
try
{
requestStream = request.GetRequestStream();
stream2 = File.Open(upFile, FileMode.Open);
byte[] buffer = new byte[0x400];
while (true)
{
int count = stream2.Read(buffer, 0, buffer.Length);
if (count == 0)
{
break;
}
requestStream.Write(buffer, 0, count);
}
if (requestStream != null)
{
requestStream.Close();
requestStream = null;
}
ftpWebResponse = (FtpWebResponse)request.GetResponse();
}
{
string UriStr = "ftp://" + DomainName + ":" + port + "//" + address;
Uri uri = new Uri(UriStr);
FtpWebRequest ftprequest = (FtpWebRequest)WebRequest.Create(uri);
ftprequest.Credentials = new NetworkCredential(FtpUserName, FtpUserPwd);
ftprequest.Method = WebRequestMethods.Ftp.ListDirectory;
ftprequest.Timeout = 3000;
FtpWebResponse ftpResponse = (FtpWebResponse)ftprequest.GetResponse();
ftpResponse.Close();
return ftpResponse.BannerMessage + " " + ftpResponse.WelcomeMessage;
}
我也在考虑这样 效率更低了。 ftprequest.Timeout = 3000;
没作用我郁闷啊
再加一句代码
pro.StartInfo.CreateNoWindow=true;