Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Pirat-SR
67 / 67 / 10
Регистрация: 20.02.2012
Сообщений: 234

Блокировка и восстановление интернет соединения как у Firewall

07.02.2013, 02:15. Показов 1605. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Появилась идея создать свой фиревол, а именно блокировка и восстановление интернет соединения. Подскажите пожалуйста где копать про эти функции. Поиск по форуму ничего не дал.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.02.2013, 02:15
Ответы с готовыми решениями:

Блокировка TCP/IP и порты (Firewall)
Здравствуйте! Как можно реализовать программу которая запрещает/разрешает пакеты по IP адресу и проверяет порты на доступность?

Как реализовать восстановление соединения?
У меня в приложении используется пул для связи оракловой БД. Однако если вдруг возникают проблемы со связью или с сервером БД, то после...

Как проверить наличие интернет соединения?
Доброго времени суток! Как проверить наличие интернет соединения? Нашел функцию : function NetConect: Boolean; var ...

2
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
07.02.2013, 10:06
Лучший ответ Сообщение было отмечено Pirat-SR как решение

Решение

Pirat-SR, смотри в сторону Wnet http://msdn.microsoft.com/en-u... 85391.aspx

Добавлено через 1 минуту
Я писал прожку по смене МАС адреса
Сетевухи искал так:
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
//На NT образной
        //Проверяем сколько всего сетевых карт
 
        TRegistry *reg = new TRegistry();
        if (reg)
        {
         // выбираем нужный корень
            reg->RootKey = HKEY_LOCAL_MACHINE;
         // открываем секцию
            reg->OpenKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards", true);
        for (int i=1; i<11; i++)
        {
                if (reg->KeyExists(IntToStr(i))==true)
                {
                   reg->CloseKey();
                   reg->OpenKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\"+IntToStr(i), true);
                   if (reg->ValueExists("Description")==true && reg->ValueExists("Servicename")==true)
                   {
                        if (reg->GetDataType("Description")==rdString && reg->GetDataType("ServiceName")==rdString){
                                NCart++;
                                Cn[NCart]=i;
 
                                CartName[NCart]=reg->ReadString("Description");
                                CartCode[NCart]=reg->ReadString("ServiceName");
                                ComboBox1->Items->Add(reg->ReadString("Description"));
                          }else{
                           //ShowMessage("Параметры в реестре не того типа");
                          }
                    }else{
                        //ShowMessage("Нет всех нужных параметров в реестре");
                    }
 
                   reg->CloseKey();
 
                   reg->OpenKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards", true);
                }
        }
 
 
            // закрываем секцию
            reg->CloseKey();
            }
 
        delete reg;
 
        if (NCart>0){
           //Label1->Caption="Найдено сетевых карт: "+IntToStr(NCart);
           //ComboBox1->Text="Нашел "+IntToStr(NCart)+ " шт.";
           ComboBox1->ItemIndex=0;
           ComboBox1Change(Form1);
        }else
        {
         ShowMessage("Сетевые карты не найдены...");
         Oshibka=1;
        }
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
 //Перезапуск сетевой карты...
                // SetupAPI: SetupDiGetClassDevs, SetupDiEnumDeviceInfo, SetupDiGetDeviceRegistryProperty, SetupDiSetClassInstallParams, SetupDiCallClassInstaller
                if (allbad==0)
                {
 
                  CLSID myCLSID;
 
                  HRESULT hres = CLSIDFromString(L"{4D36E972-E325-11CE-BFC1-08002BE10318}", &myCLSID);
 
                  if(S_OK != hres)
                  {
                                ShowMessage("CLSID convertion error");
                                allbad=1;
                  }else{
 
                  HDEVINFO lan=SetupDiGetClassDevs(&myCLSID,NULL,NULL,DIGCF_PRESENT);
                  if(lan!=INVALID_HANDLE_VALUE)
                     {
                           SP_DEVINFO_DATA         DevInfo;
                           DevInfo.cbSize = sizeof(SP_DEVINFO_DATA);
 
                          int ii = 0;
                          int findneed=0;
                          while( SetupDiEnumDeviceInfo(lan, ii, &DevInfo))
                          {
 
                                  DWORD DataT;
                                  LPTSTR buffer = NULL;
                                  DWORD buffersize = 0;
                                  AnsiString AnsiBuf, fptk;
                                  while (!SetupDiGetDeviceRegistryProperty(
                                              lan,
                                              &DevInfo,
                                              SPDRP_DRIVER,
                                              &DataT,
                                              (PBYTE)buffer,
                                              buffersize,
                                              &buffersize))
                                  {
                                      if (GetLastError() ==ERROR_INSUFFICIENT_BUFFER)
                                      {
                                           if (buffer) LocalFree(buffer);
                                           buffer = (LPTSTR)LocalAlloc(LPTR,buffersize);
                                      }
                                      else
                                      {
                                           break;
                                      }
                                  }
 
                                  //ShowMessage (fullpatchtokey+IntToStr(ii)+" "+DevInfo.DevInst+"   "+buffer);
                                  AnsiBuf=buffer;
                                  fptk=fullpatchtokey.LowerCase();
                                  if (fptk.Pos(Trim(AnsiBuf.LowerCase()))>0)
                                  {
                                       //Нашел нужную карту
                                        findneed=1;
 
                                        SP_PROPCHANGE_PARAMS    PropChangeParams;
                                        PropChangeParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
                                        PropChangeParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
                                        PropChangeParams.StateChange = DICS_PROPCHANGE;
                                        PropChangeParams.Scope = DICS_FLAG_CONFIGSPECIFIC;
                                        PropChangeParams.HwProfile = 0;
 
 
                                        if (SetupDiSetClassInstallParams(lan, &DevInfo, &PropChangeParams.ClassInstallHeader, sizeof(PropChangeParams)) && SetupDiCallClassInstaller(DIF_PROPERTYCHANGE, lan, &DevInfo))
                                             {
                                                  allbad=5;
                                                  //ShowMessage("МАС адрес изменен!");
                                             }else{
                                                  ShowMessage(SysErrorMessage(GetLastError())+" Can't Install Params");
                                                  allbad=1;
                                             }
 
                                  }
 
                                  if (buffer) LocalFree(buffer);
                                  ii++     ;
                          }  //while
 
                          if (findneed==0){allbad=1;};
 
                     }else{
                        ShowMessage(SysErrorMessage(GetLastError()));
                        ShowMessage("Can't find Class");
                        allbad=1;
                     }
 
                     SetupDiDestroyDeviceInfoList(lan);
 
 
                  }   // if(S_OK != hres)
 
 
                }   //if (allbad==0)
PropChangeParams.StateChange = DICS_DISABLE; - вырубит карточку
PropChangeParams.StateChange = DICS_ENABLE; - Включит
найдено на вражеском форуме
2
 Аватар для Pirat-SR
67 / 67 / 10
Регистрация: 20.02.2012
Сообщений: 234
07.02.2013, 12:47  [ТС]
Mr.Sandman, Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.02.2013, 12:47
Помогаю со студенческими работами здесь

Как проверить наличие Интернет соединения
Коллеги, хочу написать батник отправки эл. писем но с условием если есть Интернет. Как отправлять письма знаю. А как по условию проверить...

Как сделать лог интернет соединения Android приложения
Есть приложение и его исходники. Какие есть способы посмотреть что принимает и отсылает приложение. Что дописать, может, чем сами...

Как программно изменить свойства интернет-соединения в Internet Explorer?
что надо добавить в эту часть кода чтобы программно изменить свойства интернет-соединения в Internet Explorer, тоесть чтобы при открытии он...

NetworkInfo - deprecated, как написать метод проверки интернет соединения?
Последнее время делал это так: fun isConnectInternet(context: Context): Boolean { val connectivityManager = ...

Как прервать выполнение тестового метода при отсутствии соединения с Интернет
В проекте с юнит-тестами (VS 2010) есть метод, который тестирует некую функцию. Но чтобы ее протестировать, нужно инет-подключение....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru