2013-10-06 3 views
0

UPDATE와 같은 문자열을 출력하므로이 줄을 변경 ---이 코드는C#을은이 코드 AFTER POST ORIGIANAL POST에 변수

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); 
    } 
} 
} 
,691,363 그녀는 내가 다른 스크립트에서이 스크립트를 incude하는 업데이트 데이비드 싶습니다210

그래서이 함수에 컴퓨터 이름의 스크립트를 추가 한 다음 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 "; 
+0

이유는 별도의 응용 프로그램에 있어야 않습니다를? 당신은 단지 할 수 없어 :'formData [ "var1"] = string.Format ("MachineName : {0}", System.Environment.MachineName); – David

+0

내 대답은 내가 틱 할 것이다. 내가 쓰는 스크립트가 지금은 기능을 찾고있다. :) – user2847609

답변

1

왜 다른 응용 프로그램에 있어야합니까? 한 응용 프로그램의 출력이 다른 응용 프로그램의 입력에 대한 명령 행 인수가 될 경우 둘 다 동일한 시스템에서 실행됩니다. 즉,이 경우 모두 System.Environment.MachineName에서 동일한 값을 얻습니다.

당신은 그냥이 필요한 응용 프로그램에서 값을 얻을 수 있습니다 :

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

davind도 지난번처럼 다른 formdat var에 다른 콘솔 애플리케이션을 통합 할 수있다. – user2847609

+0

@ user2847609 : 음. Stack Overflow에 관한 또 다른 질문이 있으면 그걸 살펴볼 것입니다. – David

+0

그 질문에 정말 병이 든다. 다른 소스 코드를 추가하면 여기에 답을 추가 할 수 있고 아프다. 내 코드를 지금 아프다. – user2847609