[英]get ip address of clients machine
我們在實驗室中有10台計算機,我們設置了所有連接到LAN的計算機,以便我們可以共享文件,我的計算機充當主計算機,我只想獲取連接到主計算機(即我的計算機)的所有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地址,我想在實驗室里輸入10個機器的IP地址。
而不是傳遞主機名,而是傳遞net view的結果。
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.