Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
27 / 27 / 8
Регистрация: 02.10.2014
Сообщений: 151

Вывести на label локальный IP и Основной шлюз компьютера и изменить их

18.04.2017, 04:58. Показов 3991. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, ув. пользователи нашего форума!
Пытаюсь написать программу которая будет отображать и изменять локальный IP адрес компьютера(допустим : 192.168.0.2) и основной шлюз и gateway (допустим: 192.168.0.1). Давно не программировал, разучился гуглить походу)) поискал в гугле и на нашем пока нормальных примеров без реестра и командной строки (netsh) не нашел.. Прошу помочь с этим.

Добавлено через 7 минут
Если кто то уже писал подобную программу, прошу поделится кодом.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2017, 04:58
Ответы с готовыми решениями:

Как изменить основной шлюз?
Как изменить только основной шлюз при нажатие кнопку?

Вывести на экран основной шлюз (IP)
Здравствуй мой посетитель:). я никак не смог найти оперетора который покажет мне какой в моменте подключен адаптер. вернее в cmd при...

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

9
27 / 27 / 8
Регистрация: 02.10.2014
Сообщений: 151
20.04.2017, 19:02  [ТС]
Поднимаю тему.
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
20.04.2017, 20:02
Лучший ответ Сообщение было отмечено Insendio как решение

Решение

что значит изменять? показывать иное?
0
Модератор
10360 / 5634 / 3394
Регистрация: 17.08.2012
Сообщений: 17,195
20.04.2017, 20:09
А с какой целью интересуетесь?

По факту будет иметь место сокрытие IP с одновременной его фальсификацией, что при злом умысле с Вашей стороны может быть опасно для лиц, чей IP Вы будете использовать.

Если Вы не сможете привести аргументов в пользу того, что данное ПО не будет противоречить законодательству РФ, эта тема будет закрыта согласно пунктов 5.1 и 5.7 правил форума.
2
27 / 27 / 8
Регистрация: 02.10.2014
Сообщений: 151
21.04.2017, 17:16  [ТС]
Цитата Сообщение от magirus Посмотреть сообщение
что значит изменять? показывать иное?
Ну скажем, У меня дома имеется 3 Wifi Router'a и оптоволоконный интернет. По работе мне надо часто переключаться с одного модема в другой, чтобы каждый раз не заходить в настройки адептера чтобы менять основной шлюз на другой, хотел написать программу, с возможностью показывать IP и основной шлюз в маленькой окне в каком то углу экрана и при нажатии на него можно было изменить текущий локальный IP адрес модема на другой ну допустим 192.168.0.222 на 192.168.0.111.
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
А с какой целью интересуетесь?
По факту будет иметь место сокрытие IP с одновременной его фальсификацией, что при злом умысле с Вашей стороны может быть опасно для лиц, чей IP Вы будете использовать.
Если Вы не сможете привести аргументов в пользу того, что данное ПО не будет противоречить законодательству РФ, эта тема будет закрыта согласно пунктов 5.1 и 5.7 правил форума.
Прошу прошения что если вас ввёл в заблуждения, дело в том что это ни может никак нарушать законодательство РФ. Т.к в нём никто не разрабатывает супер-мега-топ программу для взлома и где вы тут видите создания хряк кряка?) Я просто не так всё объяснил.

Добавлено через 7 минут
Ну и да, захотел бы создать подобную программу, я бы совсем в другом форуме совсем с другой тематикой написал бы.

Добавлено через 11 минут
Информацию о IP и основном шлюзе можно достать отсюда из реестра (в моем случаи):
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ services\{B83028D6-9F61-481B-BDCF-9D4B4CCBF95F}\Parameters\Tcpip
DefaultGateway - основной шлюз
IPAddres - локальный IP компьютера

.....
Но хотелось бы это сделать без реестра и средствами Delphi(Winsock)
0
5940 / 4517 / 1093
Регистрация: 29.08.2013
Сообщений: 28,089
Записей в блоге: 3
21.04.2017, 19:04
https://geektimes.ru/post/63497/
NetSetMan - быстрая смена настроек сетевой карты
0
27 / 27 / 8
Регистрация: 02.10.2014
Сообщений: 151
27.04.2017, 09:22  [ТС]
Не то что мне нужно, если мне нужна была такая программа, я бы не стал бы создать тему именно в разделе Delphi.
0
27 / 27 / 8
Регистрация: 02.10.2014
Сообщений: 151
11.02.2018, 02:15  [ТС]
Средствами командной строки winexec + netsh получил IP4 и основной шлюз своего локального компьютера...
Команды CMD (консоли, командной строки Windows) в Delphi
Другими средствами пока не удалось это сделать.
Тему можно закрывать.
0
Эксперт Pascal/Delphi
 Аватар для droider
4882 / 2819 / 862
Регистрация: 04.10.2012
Сообщений: 10,247
13.02.2018, 12:48
Цитата Сообщение от Insendio Посмотреть сообщение
Тему можно закрывать
тему здесь не закрывают, если она не нарушает правила форума.
Цитата Сообщение от Insendio Посмотреть сообщение
winexec
это зло.

Цитата Сообщение от Insendio Посмотреть сообщение
Другими средствами пока не удалось это сделать
через Windows Sockets API (WinSock) прекрасно можно сделать.

Полный листинг

Delphi
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
uses Winsock;...; //подключаем модуль
//...
implementation
 
 type
PMIB_IPFORWARDROW = ^MIB_IPFORWARDROW;
 
  MIB_IPFORWARDROW = record
    dwForwardDest: DWORD;
    dwForwardMask: DWORD;
    dwForwardPolicy: DWORD;
    dwForwardNextHop: DWORD;
    dwForwardIfIndex: DWORD;
    dwForwardType: DWORD;
    dwForwardProto: DWORD;
    dwForwardAge: DWORD;
    dwForwardNextHopAS: DWORD;
    dwForwardMetric1: DWORD;
    dwForwardMetric2: DWORD;
    dwForwardMetric3: DWORD;
    dwForwardMetric4: DWORD;
    dwForwardMetric5: DWORD;
  end;
 
  PMIB_IPFORWARDTABLE = ^MIB_IPFORWARDTABLE;
 
  MIB_IPFORWARDTABLE = record
    dwNumEntries: DWORD;
    table: array[0..255] of MIB_IPFORWARDROW;
  end;
  var
   pIpForwardTable: PMIB_IPFORWARDTABLE;
  dwSize: ULONG;
  bOrder: boolean;
  dwStatus: DWORD;
  addr: TInAddr;
 
 
{$R *.dfm}
 
Function GetIpForwardTable(pIpForwardTable: PMIB_IPFORWARDTABLE;
 var pdwSize: ULONG; bOrder: BOOL): DWORD; stdcall;
 external 'IPHLPAPI.DLL';
 
 
           //ПОЛУЧАЕМ IP//
Function GetIPAddress():AnsiString;
type
  pu_long = ^u_long;
var
  varTWSAData : TWSAData;
  varPHostEnt : PHostEnt;
  varTInAddr : TInAddr;
  namebuf : Array[0..255] of AnsiChar;
begin
  If WSAStartup($101,varTWSAData) <> 0 Then
  Result := 'Не удалось опеределить IP адрес'
  Else Begin
    GetHostName(namebuf,sizeof(namebuf));
    varPHostEnt := GetHostByName(namebuf);
    varTInAddr.S_addr := u_long(pu_long(varPHostEnt^.h_addr_list^)^);
    Result := 'IP Address: '+inet_ntoa(varTInAddr);
  End;
  WSACleanup;
end;
 
             // ПОЛУЧАЕМ ОСНОВНОЙ ШЛЮЗ//
function GetDefaultGateway():AnsiString;
begin
  dwSize := 0;
  if GetIpForwardTable(nil, dwSize, bOrder) = ERROR_INSUFFICIENT_BUFFER then
  begin
    GetMem(pIpForwardTable, dwSize);
    try
      dwStatus := GetIpForwardTable(pIpForwardTable, dwSize, bOrder);
      if dwStatus = ERROR_SUCCESS then
      begin
        addr.S_addr := pIpForwardTable.table[0].dwForwardNextHop;
        Result:='Default Gateway: '+(inet_ntoa(addr));
      end;
    finally
      FreeMem(pIpForwardTable);
    end;
  end;
end;
 
                //ПРИМЕНЕНИЕ//
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text :=GetIPAddress();
Edit2.Text :=GetDefaultGateway();
end;
 
end.



Результат

0
13.02.2018, 12:56

Не по теме:

Да и примеров в сети не мало, если хорошо искать ;D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2018, 12:56
Помогаю со студенческими работами здесь

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

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

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

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

Какой поставить основной шлюз
Есть свич и три комп. (1к,2к,3к) 1к и 2к подключены к свичу и объединены в сеть, у 2к(2 сетеые карты) есть выход в инет, у 1к основной шлюз...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru