Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696

Получать текущий IP устройства и задать новый

27.05.2010, 14:40. Показов 4468. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Подскажите, как средствами данного языка получать текущий IP устройства и задавать новый? А так же как сделать Ping?

Добавлено через 11 часов 9 минут
Неужели никто не может помочь?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.05.2010, 14:40
Ответы с готовыми решениями:

Как создать новый дизайн сайта не затрагивая текущий?
2 года назад купил премиум-шаблон, для своего сайта. Теперь, хочу сменить дизайн, но так чтобы пользователи не заметили никаких метаморфоз...

Запрос sql на сумму за текущий год и текущий месяц
Поля БД: Дата; Наименование предприятия; Адрес, телефон;Наименование продукции; ФИО руководителя; Произведено продукции, тонн; Произведено...

E-mail: как получать сообщения и как получать их содержимое
Суть программы таков Она получает сообщение по E-mail Считывает с него команды И в соответствии с командами формирует ответное...

7
 Аватар для Antrix
44 / 44 / 8
Регистрация: 11.04.2010
Сообщений: 139
27.05.2010, 15:04
Лучший ответ Сообщение было отмечено как решение

Решение

Пинг:

C#
1
2
3
4
5
Ping p = new Ping();
PingReply pr = p.Send(@"www.google.com");
IPStatus status = pr.Status;
IPAddress ipAddr = pr.Address;
long pingTime = pr.RoundtripTime;
pingTime, как ты понял, это время ответа от сервера... выводи его куда хочешь.

Смена IP:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
        public static void SetIP(string ip_address, string subnet_mask)
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();
 
            foreach (ManagementObject objMO in objMOC)
            {
                if ((bool)objMO["IPEnabled"])
                {
                    try
                    {
                        ManagementBaseObject setIP;
                        ManagementBaseObject newIP =
                            objMO.GetMethodParameters("EnableStatic");
 
                        newIP["IPAddress"] = new string[] { ip_address };
                        newIP["SubnetMask"] = new string[] { subnet_mask };
 
                        setIP = objMO.InvokeMethod("EnableStatic", newIP, null);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
 
 
                }
            }
        }
 
        public static void SetGateway(string gateway)
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();
 
            foreach (ManagementObject objMO in objMOC)
            {
                if ((bool)objMO["IPEnabled"])
                {
                    try
                    {
                        ManagementBaseObject setGateway;
                        ManagementBaseObject newGateway =
                            objMO.GetMethodParameters("SetGateways");
 
                        newGateway["DefaultIPGateway"] = new string[] { gateway };
                        newGateway["GatewayCostMetric"] = new int[] { 1 };
 
                        setGateway = objMO.InvokeMethod("SetGateways", newGateway, null);
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
        }
 
        public static void SetDNS(string NIC, string DNS)
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();
 
            foreach (ManagementObject objMO in objMOC)
            {
                if ((bool)objMO["IPEnabled"])
                {
                    if (objMO["Caption"].Equals(NIC))
                    {
                        try
                        {
                            ManagementBaseObject newDNS =
                                objMO.GetMethodParameters("SetDNSServerSearchOrder");
                            newDNS["DNSServerSearchOrder"] = DNS.Split(',');
                            ManagementBaseObject setDNS =
                                objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
            }
        }
 
        public static void SetWINS(string NIC, string priWINS, string secWINS)
        {
            ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection objMOC = objMC.GetInstances();
 
            foreach (ManagementObject objMO in objMOC)
            {
                if ((bool)objMO["IPEnabled"])
                {
                    if (objMO["Caption"].Equals(NIC))
                    {
                        try
                        {
                            ManagementBaseObject setWINS;
                            ManagementBaseObject wins =
                            objMO.GetMethodParameters("SetWINSServer");
                            wins.SetPropertyValue("WINSPrimaryServer", priWINS);
                            wins.SetPropertyValue("WINSSecondaryServer", secWINS);
 
                            setWINS = objMO.InvokeMethod("SetWINSServer", wins, null);
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                }
            }
        }
Не забудь добавить ссылку на System.Management
4
Кибернетик
 Аватар для СyberSpec
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
27.05.2010, 16:07
Пример
2
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
27.05.2010, 18:34  [ТС]
Огромное спасибо!
Antrix, а как сменить IP для определенного устройства?
Мне нужно получить список устройств и для выбранного изменить IP и т.д.
0
 Аватар для Antrix
44 / 44 / 8
Регистрация: 11.04.2010
Сообщений: 139
27.05.2010, 19:10
Ну для такого дела - советую посмотреть тот пример, ссылку на который дал CyberSpec
1
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
27.05.2010, 22:29  [ТС]
Спасибо!

Добавлено через 3 минуты
А что означает строка "Win32_NetworkAdapterConfiguration"?
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
28.05.2010, 01:42
Antrix, ссылки на источники не забывай!
0
 Аватар для Antrix
44 / 44 / 8
Регистрация: 11.04.2010
Сообщений: 139
28.05.2010, 03:32
Цитата Сообщение от Mikant Посмотреть сообщение
Antrix, ссылки на источники не забывай!
Ну я, как бы, ссылку на источник дал... тем более, что источник находится на данном форуме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2010, 03:32
Помогаю со студенческими работами здесь

Помогите с кодом - как задать новый пароль в защите формы в delphi?
Все добрый день, помогите с кодом... в проекте-защита формы паролем..form1 и form2. Form1- на ней запрашивается пароль для открытия form2....

Текущий элемент списка - текущий элемент формы
Добрый день. Логика такая Список - выделенный элемент - текущий элемент - подробная информация. Пробывал делать через мастер,...

Как задать новый стиль для тега, у которого уже есть стиль
Привет всем. У меня есть вот такая запись в таблице стилей #c_menu li{ list-style:none; padding: 5px 0px; border-bottom: 1px solid...

Задать массивы Х и Z элементов целого типа. Создать новый массив Y, включив массив Z между k-м
Задать массивы Х и Z элементов целого типа. Создать новый массив Y, включив массив Z между k-м и (k+1)-ым элементами массива X. Вывести все...

Как разместить драйвер устройства в Диспетчере устройств в разделе Системные устройства?
Здравствуйте! Можно ли ( если да, то как ? ) отредактировать имеющийся .inf файл от драйвера некого устройства, чтобы в Диспетчере...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Закрытая тема Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru