Сергей, ты первый :)
Да ещё и с таким анализом, у меня даже в мыслях не было - таким способом подсказывать пользователю айпи адрес :)
Сергей, ты классно придумал, у меня проще немного было, я только посмотрела айпи компа и вставила его вместо нашего, и заработало, хотя признаюсь тоже ведь когда я пыталась сделать свою виртуальную машину сервером и прописывала на втором ноуте клиента айпи виртуальной машины, не заработал, а когда обычный ноют стал сервером все классно, видемо особенности моей виртуальной машины.
Молодец!
Здорово! Было бы здорово этот "костыль" показать. Здорово, что все получилось. Я вообще не представляю, как считать ответ из консоли в программу, да еще и отпарсить его правильно. Может можно какой-нибудь скриншотик с кодом этого дела? Думаю все будут признательны.
Да, конечно можно, вот код, который этим делом занимается (пример работы с консолью я нашел на каком-то форуме и адаптировал его под свои нужды, а до этого тоже не знал, как "общаться" с консолью) :
//Создание процесса
ProcessStartInfo psiOpt = new ProcessStartInfo(@"cmd.exe", @"/C ipconfig /all");
//Установка скрытого режима (чтобы окно консоли с запросом не выводилось на экран и не мешало работать)
psiOpt.WindowStyle = ProcessWindowStyle.Hidden;
//Это, честно говоря, не помню что такое)
psiOpt.UseShellExecute = false;
//Разрешение перенаправления выходного потока данных (ответа от консоли)
psiOpt.RedirectStandardOutput = true;
// запускаем процесс
Process procCommand = Process.Start(psiOpt);
// получаем ответ запущенного процесса
StreamReader srIncoming = procCommand.StandardOutput;
string stringg = srIncoming.ReadToEnd();
//Преобразуем ответ в массив строк
string[] st = stringg.Split('\n');
// закрываем процесс
procCommand.WaitForExit();
foreach (var s in st)
{
//Ищем строчку, в которой указан наш IP (в ней есть фраза "IPv4")
if (s.Contains("IPv4"))
{
//Вытаскиваем из нее сам IP адрес
string ss = s.Substring(s.IndexOf(":") + 2, s.IndexOf("(") - s.IndexOf(":") - 2);
Console.WriteLine(string.Format("Сообщите IP {0} своему коллеге-клиенту", ss));
host = ss;
break;
}
}
А разве IP виртуальной машины и самого компьютера не должны совпадать? Железо же одно)
Сергей, нет не совпадают, совсем разные, у них даже железо по разному прописывается, у меня эта виртуалка с виндой и студией на маке стоит, и они друг с другом не очень то дружат, хоть по помещаются и работают параллельно!