Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.58/93: Рейтинг темы: голосов - 93, средняя оценка - 4.58
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234

Вывести на экран основной шлюз (IP)

01.10.2010, 23:11. Показов 20010. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуй мой посетитель.
я никак не смог найти оперетора который покажет мне какой в моменте подключен адаптер.
вернее в cmd при ipconfig показывает IP адрес, маска подсети и основной шлюз.
мне нужна только информация - основной шлюз.
поясню зачем мне это нужно. по моей работе , у моих клиентов надо настраивать роутеры и всякие другие подключенные устройства. чтоб определить IP подключенного роутера надо первое узнать IP роутера это делается обыкновенно в cmd -> ipconfig , потом надо открыть интернет эксплоер и там ввести этот IP адрес. но я написал прогамму в которой есть и настройки для кабельных модемов , там надо вводить некоторые данные для их настройки. и так как я пользую такую программу почему-бы и из этой програмки и не заходить прямо на адрес ОСНОВНОГО ШЛЮЗА.
просто мне нужна програмка которая просто покажет на экран - IP основного шлюза.
далее моя проблемма как все реализовать.
нашел одну програмку к сожалению которая показывает 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
#include <winsock.h>
#include <stdio.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{    WORD wVersionRequested;  
  WSADATA wsaData; 
   wVersionRequested = MAKEWORD(1, 0); 
   int err = WSAStartup(wVersionRequested, &wsaData);
    if(err == 0)  
  {        char hn[1024];
        struct hostent *adr;
        if(gethostname((char *)&hn, 1024))        
 {            int err = WSAGetLastError();
            Beep();
        };
        adr = gethostbyname(hn); 
       if(adr)        {          char *LocalIp = new char[15];
          sprintf(LocalIp,"%d.%d.%d.%d",  
        (unsigned char)adr->h_addr_list[0][0],   
       (unsigned char)adr->h_addr_list[0][1],    
      (unsigned char)adr->h_addr_list[0][2],    
      (unsigned char)adr->h_addr_list[0][3]); 
         Label1->Caption=LocalIp; //Выводим IP адрес      
      }   
   } 
}
Миниатюры
Вывести на экран основной шлюз (IP)  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.10.2010, 23:11
Ответы с готовыми решениями:

Вывести на label локальный IP и Основной шлюз компьютера и изменить их
Здравствуйте, ув. пользователи нашего форума! Пытаюсь написать программу которая будет отображать и изменять локальный IP адрес...

Основной шлюз
можете обьяснить что такое основной шлюз в сети?? я так понимаю что это устройство через которое происходит обмен между устройствами данной...

Получить основной шлюз
Как получить адрес основного шлюза? в Qt не нашел как это сделать, мб есть еще способы? вообще надо это сделать для android, но для...

32
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
03.10.2010, 18:12
Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
ShellExecute(Handle, "open",AnsiString("http://gscan.cgi?freg=" + ComboBox1->Items->Strings[ComboBox1->ItemIndex]).c_str(),0 , 0, SW_SHOWNORMAL); 
 
// либо либо
 
ShellExecute(Handle, "open",AnsiString("http://gscan.cgi?freg=" + ComboBox1->Text).c_str(),0 , 0, SW_SHOWNORMAL);
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
03.10.2010, 18:17  [ТС]
может так?
C++
1
String Downstream=ComboBox4->Items->Strings[ComboBox4->ItemIndex];
C++
1
2
 Downstream= RouterAddress.Insert("http://",0);
ShellExecute(Handle, "open", Downstream.c_str() ,0 , 0, SW_SHOWNORMAL);
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
03.10.2010, 18:19
да, так будет более читабельно выглядеть
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
03.10.2010, 18:40  [ТС]
Gremlin,
работают твои и две строки

Добавлено через 17 минут
все пока на этом остановлюсь
сечас надо внести новшества в прогу немного с дизайном и сервисом поиграться
всем огромное спаибо за реальную помощь!

Gremlin,

MikeSoft,
встретимся в новой теме
0
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
17.10.2010, 15:45
Цитата Сообщение от Gremlin Посмотреть сообщение

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
    system("ipconfig > C:\\ipinfo.txt");
    TStringList *list = new TStringList;
    list->LoadFromFile("C:\\ipinfo.txt");
    for(int i = 0; i < list->Count; i++)
    {
        if(list->Strings[i].Length() < 10)
        {
            list->Delete(i--); // удаляем пустые строки
        }
    }
    ShowMessage(list->Text);
    delete list;
Помогите, пожалуйста, чайнику!!!
Этот кусок кода выполняется без укоризненно, но русские буквы пишет каряказяблами(кроме ipconfig)
что можно сделать для правильного отображения русских букв
0
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
18.10.2010, 15:50
Помогите!!!
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
18.10.2010, 16:02  [ТС]
где русские буквы пишет каряказяблами(кроме ipconfig)
в редакторе или уже в записаном файле тхт?

Добавлено через 6 минут
может тебе надо в настройке фонт - набор символов - кириллический (установить)
0
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
19.10.2010, 15:08
В тхт файле отображает нормально,а в ShowMessage каряказяблами
команды getmac, ping. A route print не хочет вообще отображать, думаю из-за того, что команда набрана через пробел, не знаю, что делать....
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
19.10.2010, 16:00  [ТС]
zesen,
у меня в буилдере в Form1->Font->MS Sans Serif (набор символов криллический).
посмотри как у тебя?
еще может в региональных настройках.
простой эксперемент - напиши в блокноте на русском текст, потом скопируй и вставь в буилдера.
если там появятся кракозяблы то у тебя ипользуется кодовая страница 1252. надо сменить на 1251

Добавлено через 19 минут
а вот если кому интересно как я решил проблемму с основным шлюзом!
но их может быть несколько
для того чтоб вывести основной шлюз который активен, я использовал команду nslookup
и теперь после всех тестов на разных компах я всегда попадаю точно на активный сервер default (шлюз активного соединения в данном случае и есть роутер или модем)
вот код
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
void __fastcall TForm1::Label15Click(TObject *Sender)
{
 AnsiString filename = "default.txt"; // куда выводить ipconfig  
    system("nslookup /q > default.txt");
    if(FileExists(filename)) // проверяем наличие файла
    {
        TStringList *list = new TStringList;
        list->LoadFromFile(filename);
        AnsiString temp;
        for(int i = 0; i < list->Count; i++)
        {
            temp = list->Strings[i];
            if(temp.Length() < 10)
            {
                list->Delete(i--); // удаляем пустые строки
            }
          
            else
            {
  list->Strings[i] = temp.SubString(temp.Pos(":") + 1, temp.Length());
          // тут мы имеем строку текст....:000.000.000.000
 // за разделитель разумеется применяем ":", и у нас остается 000.000.000.000
            }
        }
         // удаляем все пробелы в тексте
 list->Text = StringReplace(list->Text, " ", "", TReplaceFlags() << rfReplaceAll);
      
      String RouterAddress = list->Strings[1];
      RouterAddress = RouterAddress.Insert("http://",0);
       ShellExecute(Handle, "open", RouterAddress.c_str() ,0 , 0, SW_SHOWNORMAL);
      }
}
//*****************************************************************************
с особой благодарностью за помощь в содании кода -> Gremlin
0
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
19.10.2010, 16:39
Спасибо

Добавлено через 23 минуты
Поменял в реестре с 1252 на 1251, но ничего нового, все теже каряказяблы =(
и еще момент как правилильно указать route print в
C++
1
system(" route print> sss.txt");
а то не хочет работать... думаю из-за пробела в команде
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
19.10.2010, 17:48  [ТС]
попробуй так
C++
1
system("route print > sss.txt");
0
122 / 85 / 2
Регистрация: 17.10.2010
Сообщений: 436
02.11.2010, 16:19
Цитата Сообщение от lifeforce Посмотреть сообщение
попробуй так
C++
1
system("route print > sss.txt");
Не выходит
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
02.11.2010, 20:58
Code
1
route print > "C:\bla bla\filename.txt"
возможно что нужно указать полный путь, в какой файл выводить информацию

C++
1
2
3
4
AnsiString cmd_text = "route print";
cmd_text += " > \"" + ExtractFilePath(Application->ExeName);
cmd_text += "filename.txt\"";
system(cmd_text.c_str());
1) route print
2) route print > "C:\bla bla\test\
3) route print > "C:\bla bla\test\filename.txt";
4) выполнение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2010, 20:58

Не заходит на основной шлюз
После ресета модема, сменился основной шлюз (раньше был 192.168.0.50) теперь при попытке зайти на осн. шлюз вылезает такоe . Через провод...

Основной шлюз TCP/IP
Не могу пинговать основной шлюз, пишет заданная сеть недоступна! Почему может так быть? Но самое интересное что интернет есть и по сети...

Найти основной шлюз
Нужна помощь, надо найти основной шлюз и полученные данные перевести с строковый тип, заранее спасибо!

Получить Основной шлюз Windows XP/7
Всем привет, надо получить &quot;Основной шлюз&quot; (как в XP так и в W7), т.е. по-умолчанию шлюз, а не шлюз конкретного сетевого адаптера. Первый...

Как сменить основной шлюз?
Пожалуйста подскажите как одной командой сменить основной шлюз. Например с 0.0.0.0 на 192.168.3.11. Заранее благодарен!!!!


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru