2011-03-25 22 views
0

私たちは実験室で10台のコンピュータを持っていますので、 のIPアドレスは、 はファイルを共有できるので、私のコンピュータはメインコンピュータとして機能します。メインコンピュータに接続されたコンピュータ(それは私のコンピュータである)、それらをリスト 私は研究室の10マシンのIPアドレスにしたい、私のコードはクライアントマシンのIPアドレスを取得

System.Diagnostics.Process p = new System.Diagnostics.Process(); 
    p.StartInfo.FileName = "cmd "; 
    p.StartInfo.UseShellExecute = false; 
    p.StartInfo.Arguments = "/C net view"; 
    p.StartInfo.RedirectStandardOutput = true; 
    p.Start(); 
    String output = p.StandardOutput.ReadToEnd(); 
    char[] delimiters = new char[] { '\n', '\\' }; 
    string[] s = output.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); 
    string hostName = Dns.GetHostName(); 
    IPHostEntry IPHost = Dns.GetHostEntry(hostName); 
    Console.WriteLine(IPHost.HostName); // Output name of web host 
    IPAddress[] address = IPHost.AddressList; // get list of IP address 
    // Console.WriteLine("List IP {0} :", IPHost.HostName); 
    if (address.Length > 0) 
    { 
     for (int i = 0; i < address.Length; i++) 
     { 
      Console.WriteLine(address[i]); 
     } 
    } 


    p.WaitForExit(); 
    int z = s.Length - 5; 

    string[] str1 = new string[z]; 
    // int i = 0; 
    char[] saperator = { ' ' }; 
    for (int j = 3; j < s.Length - 2; j++) 
    { 
     //Console.WriteLine(s[i]); 
     // str1[i] = (s[j].ToString()).Split(saperator)[0]; 
     // Console.WriteLine("IP Address {0}: {1} ", i, addr[i].ToString()); 
    } 
    //Console.WriteLine(output); 

    s = output.Split(new string[] { "\n,\\" }, StringSplitOptions.None); 

    //Console.WriteLine(s[i]); 
    //Console.WriteLine(output); 
    // Console.WriteLine("IP Address : {1} ", i, AddressList[i].ToString()); 
    Console.ReadLine(); 

ですが、私は私のマシンのIPアドレスを取得します。

+0

投稿を編集してコードを再フォーマットできますか? –

答えて

1

ホスト名を渡す代わりに、というネットビューの結果を渡します。

foreach (string hostName in hostNames) 
{ 
    //string hostName = Dns.GetHostName(); 
    IPHostEntry entry = Dns.GetHostEntry(hostName); 
    Console.WriteLine(entry.HostName); // output name of web host 
    IPAddress[] addresses = entry.AddressList; // get list of IP addresses 
    foreach (var address in addresses) 
    { 
     Console.WriteLine(address); 
    } 
} 
関連する問題