Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143

SetAdapterIpAddress и Windows 7

27.03.2017, 11:41. Показов 1441. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Есть задача изменить или добавить ip адресс. по интернету нашел функцию SetAdapterIpAddress.
вот что сделал
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
#include <vcl.h>
#include <winsock.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
typedef DWORD (WINAPI *_SetAdapterIpAddress )
    (
        char *szAdapterGUID,
        DWORD dwDHCP,
        DWORD dwIP,
        DWORD dwMask,
        DWORD dwGateway
    );
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HINSTANCE lib = (HINSTANCE) LoadLibrary(L"iphlpapi.dll");
 
    _SetAdapterIpAddress SetAdapterIpAddress = (_SetAdapterIpAddress) GetProcAddress(lib,"SetAdapterIpAddress");
    SetAdapterIpAddress("{2A2AF433-A648-4E93-A17F-DE97B2314193}",0,
    inet_addr("192.168.1.20"),
    inet_addr("255.255.255.0"),
    inet_addr("192.168.1.2"));
}
но что-то ничего не происходит, куда копать дальше? может кто подскажет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2017, 11:41
Ответы с готовыми решениями:

Беспроводная сеть Windows XP- Windows 7, Windows 7 подключается но пишет что без доступа к интернету.
Компьютер под управлением Windows XP посредством USB адаптера D-Link (WiFi точка) дает WiFi на ноутбук под управлением Windows 7, Ноут...

Windows 8.1 обновилась недавно до Windows 10, при этом перестала запускаться Windows 7, установленная второй
Купил ноут, на котором была предустановлена Windows 8.1. Но так как некоторые программы под ней не работаю, пришлось установить Windows 7....

Возможно ли после переустановки Windows с установочного диска с Windows 8 снова обновиться до Windows 10?
Так получилось, что у меня начал сильно глючить софт, как мне сказали, что я напорталчил при первой установке винды (W8 с диска). Сейчас у...

6
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
27.03.2017, 11:59
Доброго.
Интересно как Вы собераетесь сменить ip, который Вам присвоен из вне (замете и я даже не спрашиваю какой тип ip локальный или глобальный).
0
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
27.03.2017, 12:05  [ТС]
IP статический, извне мне его никто не присваивал. Или вы что-то другое имеете ввиду?

или в windows нет вообще инструментов для изменения IP? а то хочется иметь такую возможность(
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
27.03.2017, 12:12
Цитата Сообщение от painless Посмотреть сообщение
IP статический, извне мне его никто не присваивал.
то есть у вас нет ни роутура, не провайдера, верно? Комп одиношенький стоит в уголку ?) Если да, то можно менять хоть на какой IP.

PS. А цель конечная какая?
0
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
27.03.2017, 12:20  [ТС]
Есть два компа, которые просто соединены кабелем. IP статический и там и там, иногда надо менять IP
0
 Аватар для Dinkin
783 / 556 / 136
Регистрация: 31.05.2013
Сообщений: 3,154
Записей в блоге: 3
27.03.2017, 12:34
Тогда,теоретически можно... я давно, менял ip с виртуальной ОС через IP Helper
0
2 / 2 / 1
Регистрация: 04.02.2010
Сообщений: 143
27.03.2017, 15:49  [ТС]
получилось добавить 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
    DWORD dwSize = 0;
    DWORD dwRetVal = 0;
    DWORD ifIndex;
    LPVOID lpMsgBuf;
    IN_ADDR IPAddr;
    HINSTANCE lib = (HINSTANCE) LoadLibrary(L"iphlpapi.dll");
    UINT iaIPAddress;
    UINT iaIPMask;
    ULONG NTEContext = 0;
    ULONG NTEInstance = 0;
 
    PMIB_IPADDRTABLE pIPAddrTable;
    pIPAddrTable = (MIB_IPADDRTABLE *) malloc(sizeof (MIB_IPADDRTABLE));
 
    if (pIPAddrTable)
    {
        // Make an initial call to GetIpAddrTable to get the
        // necessary size into the dwSize variable
        if (GetIpAddrTable(pIPAddrTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER)
        {
            free(pIPAddrTable);
            pIPAddrTable = (MIB_IPADDRTABLE *) malloc(dwSize);
 
        }
        if (pIPAddrTable == NULL)
        {
            RichEdit1->Lines->Add("Memory allocation failed for GetIpAddrTable\n");
            exit(1);
        }
    }
 
    if ((dwRetVal = GetIpAddrTable( pIPAddrTable, &dwSize, 0 )) != NO_ERROR )
    {
        RichEdit1->Lines->Add("GetIpAddrTable failed with error " + dwRetVal);
        if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwRetVal, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),       // Default language
                          (LPTSTR) & lpMsgBuf, 0, NULL))
        {
            RichEdit1->Lines->Add("Error");
            LocalFree(lpMsgBuf);
        }
        exit(1);
    }
 
    for (int i = 0; i < (int) pIPAddrTable->dwNumEntries; i++)
    {
        if (0 == i)
        {
            ifIndex = pIPAddrTable->table[i].dwIndex;
        }
        if (pIPAddrTable->table[i].wType & MIB_IPADDR_PRIMARY)
            RichEdit1->Lines->Add("\tPrimary IP Address");
        if (pIPAddrTable->table[i].wType & MIB_IPADDR_DYNAMIC)
            RichEdit1->Lines->Add("\tDynamic IP Address");
        if (pIPAddrTable->table[i].wType & MIB_IPADDR_DISCONNECTED)
            RichEdit1->Lines->Add("\tAddress is on disconnected interface");
        if (pIPAddrTable->table[i].wType & MIB_IPADDR_DELETED)
            RichEdit1->Lines->Add("\tAddress is being deleted");
        if (pIPAddrTable->table[i].wType & MIB_IPADDR_TRANSIENT)
            RichEdit1->Lines->Add("\tTransient address");
 
        RichEdit1->Lines->Add(pIPAddrTable->table[i].dwIndex);
        IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwAddr;
        RichEdit1->Lines->Add(inet_ntoa(IPAddr));
        IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwMask;
        RichEdit1->Lines->Add(inet_ntoa(IPAddr));
        IPAddr.S_un.S_addr = (u_long) pIPAddrTable->table[i].dwBCastAddr;
        RichEdit1->Lines->Add(pIPAddrTable->table[i].dwReasmSize);
 
        RichEdit1->Lines->Add("");
 
    }
 
    if (pIPAddrTable)
    {
        free(pIPAddrTable);
        pIPAddrTable = NULL;
    }
    iaIPAddress = inet_addr("192.168.3.5");
    iaIPMask    = inet_addr("255.255.255.0");
 
    if ((dwRetVal = AddIPAddress(iaIPAddress,
                                iaIPMask,
                                ifIndex,
                                &NTEContext, &NTEInstance)) == NO_ERROR)
        RichEdit1->Lines->Add("IPv4 address %s was successfully added");
    else
        RichEdit1->Lines->Add(dwRetVal);
но хотелось бы изменить уже имеющийся, а не добавлять новый
и при проверке оказалось, что после перезагрузке все добавленные IP теряются(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2017, 15:49
Помогаю со студенческими работами здесь

Во время переустановки Windows 7 сохранила Windows XP как Windows.old - что с ней делать?
у меня стоял widows xp я сделал переустановку и поставил windows 7 во время переустановки windows 7 сохранила windows xp как Windows.old...

Рухнула Windows 8 на ноутбуке Dell. Как установить заново Windows 8 или Windows 7?
при попытке восстановить систему с widows 8 пишет что не удалось восстановить,ни одним из предлагаемых способов. запускаю установку с...

Что лучше: Windows XP SP3, Windows Vista SP2 или Windows 7 SP1?
Что лучше: Windows Vista Ultimate SP2, Windows XP SP3 или Windows Se7en Максимальная Pre SP1 в плане удобности.

Сеть между Windows 7 и Windows XP, через TeamViewer (ин-нет только на Windows 7)
проблема: не могу настроить сеть между 7 и ХР на 7ке оба фаерволла отключены, на ХР один и единственный тоже. на 7ке, при подключении...

При установке Windows 7 или Windows Vista распоковка Windows не идет
Все привет Столкнулся с такой проблемой,когда начинаю устанавливать Windows7 или Vista распоковка винды не идет,но комп не виснет ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 11.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 10.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 09.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 09.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 09.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru