Ping一个网站并将数据保存在.csv文件中

时间:2015-10-14 19:52:42

标签: c# .net csv ping

当代码是RUN时,它必须ping我指定的网站各4次,然后将结果写入.csv文件。但我一直在收到TIMEOUT错误。谁能告诉我为什么?我尝试了很多不同的东西,注意到目前为止工作。请帮帮我。

        static void Main(string[] args)
        {
            List<string> lstWebSites = new List<string>();
            lstWebSites.Add("www.yahoo.com");
            lstWebSites.Add("www.att.com");
            lstWebSites.Add("www.verizon");
            string filename = @"PingLog.csv";
            {
                using (var writer = new StreamWriter(filename, true)) 
                {
                    foreach(string website in lstWebSites)
                    {
                        writer.WriteLine(website);
                        try
                        {
                            Ping myPing = new Ping();
                            PingReply reply = myPing.Send(website, 1000);
                            if (reply != null)
                            {
                                Console.WriteLine("{0}, {1}", reply.Address, reply.RoundtripTime);
                            }
                        }                   
                        catch
                        {
                            Console.WriteLine.("ERROR: You have some TIMEOUT issue");
                        }
                    }
                }
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

这是一个有效的例子。我添加了一些注释,其中包含语法错误或我对原始代码进行了调整。

// Missing quotes, should probably be a full file path
string filename = @"C:\temp\PingLog.csv";

// You had an extra opening brace here

// Open a file for writing using the filename, and a flag that means whether to append
using (var writer = new StreamWriter(filename, false))
{
    // Write a CSV header
    writer.WriteLine("Status, Time, Address");
    try
    {
        Ping myPing = new Ping();
        PingReply reply = myPing.Send("www.yahoo.com", 1000);
        if (reply != null)
        {
            // Use the overload of WriteLine that accepts string format and arguments
            writer.WriteLine("{0}, {1}, {2}", reply.Status, reply.RoundtripTime, reply.Address);
        }
    }
    catch
    {                   
        // You had a syntax error here
        Console.WriteLine("ERROR: You have some TIMEOUT issue");
    }
}

答案 1 :(得分:0)

好的,我发现了大部分问题。非常感谢你帮助我。 虽然,我仍然需要这个至少三个网站ping并给我每个网站4 ping结果。 所以,如果有人可以取悦,请再帮我一点。 这就是我所拥有的,到目前为止它的作用:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.NetworkInformation;
using System.Text;
using System.Threading.Tasks;

namespace Ping Application
{
    class Program
    {
        static void Main(string[] args)
        {
            string filename = @"PingLog.csv";
            {
                using (var writer = new StreamWriter(filename, true)) 
                {
                    writer.WriteLine("www.yahoo.com", Time in MilliSeconds);
                    try
                    {
                        Ping myPing = new Ping();
                        PingReply reply = myPing.Send("www.yahoo.com", 1000);
                        if (reply != null)
                        {
                            Console.WriteLine("{0}, {1}, {2}", reply.Address, reply.RoundtripTime, reply.RoundtripTime);
                        }
                    }                   
                    catch
                    {
                        Console.WriteLine.("ERROR: You have some TIMEOUT issue");
                    }
                }
            }
        }
    }
}