0

このコードの後に​​元の投稿を投稿するように更新 --- このコードは、David が私を助けてくれたものを更新したもので、1 つのエラーがスローされ、助けが必要です

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Specialized;
using System.Net;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {
    static void Main(string[] args)
    {
        string URL = "http://localhost/test2.php";
        WebClient webClient = new WebClient();

        NameValueCollection formData = new NameValueCollection();
        formData["var1"] = formData["var1"] = string.Format("MachineName: {0}", System.Environment.MachineName);
        formData["var2"] = ip();


        byte[] responseBytes = webClient.UploadValues(URL, "POST", formData);
        string responsefromserver = Encoding.UTF8.GetString(responseBytes);
        Console.WriteLine(responsefromserver);
        webClient.Dispose();
        System.Threading.Thread.Sleep(5000);
    }
    public void ip()
    {
        String publicIP = "";

        System.Net.WebRequest request = System.Net.WebRequest.Create("http://checkip.dyndns.org/");
        using (System.Net.WebResponse response = request.GetResponse())
        {
            using (System.IO.StreamReader stream = new System.IO.StreamReader(response.GetResponseStream()))
            {
                publicIP = stream.ReadToEnd();
            }
        }

        //Search for the ip in the html
        int first = publicIP.IndexOf("Address: ") + 9;
        int last = publicIP.LastIndexOf("</body>");
        publicIP = publicIP.Substring(first, last - first);

        Console.WriteLine(publicIP);
        System.Threading.Thread.Sleep(5000);


    }
}
}

this is the error I am getting 
Error   2 - An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.ip()'
I am trying to create a function that will send the out put as var2

私はこのC#スクリプトを持っています

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication4
{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("MachineName: {0}", System.Environment.MachineName);
        System.Threading.Thread.Sleep(5000);
    }
}
}

これを変更して、文字列を「VAR2」などの変数に出力し、このスクリプトで使用するにはどうすればよいですか

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.Specialized;
using System.Net;
using System.IO;


namespace ConsoleApplication1
{
class Program
{

    static void Main(string[] args)
    {
        string URL = "http://localhost/test2.php";
        WebClient webClient = new WebClient();
        NameValueCollection formData = new NameValueCollection();
        formData["var1"] = "THIS IS WHERE VAR2 NEEDS TO BE ";


        byte[] responseBytes = webClient.UploadValues(URL, "POST", formData);
        string responsefromserver = Encoding.UTF8.GetString(responseBytes);
        Console.WriteLine(responsefromserver);
        webClient.Dispose();
        System.Threading.Thread.Sleep(5000);
    }
}
}

では、この関数にマシン名スクリプトを追加し、それを VAR2 として使用するにはどうすればよいでしょうか。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication5
{
class Program
{
    public static int Main(string[] args)
    {
        String publicIP = "";

        System.Net.WebRequest request = System.Net.WebRequest.Create("http://checkip.dyndns.org/");
        using (System.Net.WebResponse response = request.GetResponse())
        {
            using (System.IO.StreamReader stream = new System.IO.StreamReader(response.GetResponseStream()))
            {
                publicIP = stream.ReadToEnd();
            }
        }

        //Search for the ip in the html
        int first = publicIP.IndexOf("Address: ") + 9;
        int last = publicIP.LastIndexOf("</body>");
        publicIP = publicIP.Substring(first, last - first);

        Console.WriteLine(publicIP);
        System.Threading.Thread.Sleep(5000);
        return 0;
    }
}
}

彼女は更新されたデビッドです。このスクリプトを他のスクリプトに含めたいので、次のようになります

formData["var1"] = formData["var1"] = string.Format("MachineName: {0}", System.Environment.MachineName);
formData["var2"] = "this is where this script needs to be  ";
4

1 に答える 1

1

なぜ別のアプリケーションにする必要があるのですか? あるアプリケーションの出力が別のアプリケーションの入力のコマンドライン引数になる場合、それらは両方とも同じマシン上で実行されています。つまり、この場合、どちらも から同じ値を取得しますSystem.Environment.MachineName

必要なアプリケーションで値を取得できます。

formData["var1"] = string.Format("MachineName: {0}", System.Environment.MachineName);
于 2013-10-06T20:00:05.583 に答える