0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4

Создание VPN подключения

30.03.2012, 22:48. Показов 3679. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Собственно вопрос о создание VPN подключения на PureBasic
Может кто нибудь помочь? Уже весь мозг себе вынес, но так и не смог сделать, облазил кучу форумов, безрезультатно... А надо срочно, знаю, есть на других языках сей чудо, но надо именно на PB
Очень надеюсь на помощь.
Есть наброски как я пробовал перевести рабочий код на С++ в PB эффекта ноль.
Помогите пожалуйста! Если надо выложить то, что уже есть то могу выложить.
За ранее огромное спасибо! Надеюсь на помощь в создание VPN подключения на PB.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2012, 22:48
Ответы с готовыми решениями:

Создание VPN подключения
В общем сабж..

Создание VPN подключения для конкретного пользователя
Здравствуйте Уважаемые!!! Возможно ли средствами PowerShell создать VPN подключение для определённого пользователя?

Подключения через VPN
Можно ли связать две точки через один VPN маршрутизатор и программку или нужно два VPN маршрутизатора?

6
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
31.03.2012, 08:30
Цитата Сообщение от LEX Посмотреть сообщение
Есть наброски как я пробовал перевести рабочий код на С++ в PB
Интересно посмотреть.
0
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4
31.03.2012, 10:35  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Интересно посмотреть.
Вот код на С++
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
RASENTRY RS; 
 memset(&RS, 0, sizeof(RASENTRY)); 
    RS.dwSize = sizeof(RS); 
    RS.dwfOptions = RASEO_PreviewUserPw | 
    RASEO_ModemLights | 
    // RASEO_PreviewDomain |        // отображать поле "Домен" в окне ввода пользователя и пароля (вкладка "Параметры" - установить флажок "Включать домен входа в Windows") 
    RASEO_ShowDialingProgress |     // вкладка "Параметры" - Параметры набора номера: установить флажок "Отображать ход подключения" 
    RASEO_RemoteDefaultGateway |    // вкладка "Сеть" - "Протокол Интернета (TCP/IP)" - кнопка "Дополнительно" - установить флажок "Использовать основной шлюз в удаленной сети" 
    RASEO_SwCompression |           // вкладка "Сеть" - кнопка "Параметры" - установить флажок "Использовать программное сжатие данных" 
    // RASEO_RequirePAP |           // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Незашифрованный пароль (PAP)" 
    // RASEO_RequireSPAP |          // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля Shiva (SPAP)" 
    RASEO_RequireCHAP |             // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля CHAP" 
    // RASEO_RequireMsCHAP |        // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля Microsoft (MS-CHAP)" 
    // RASEO_RequireW95MSCHAP |     // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Разрешить старый протокол MS-CHAP для Windows 95" 
    RASEO_RequireMsCHAP2 |          // вкладка "Безопасность" - "Дополнительные (выборочные параметры)" - установить флажок "Протокол проверки пароля Microsoft (MS-CHAP v2)" 
    RASEO_SecureLocalFiles;          // вкладка "Сеть" - Компоненты, используемые этим подключением: снять флажок "Использовать основной шлюз в удаленной сети"; 
    RS.dwfOptions2 = RASEO2_DontNegotiateMultilink | RASEO2_ReconnectIfDropped; 
    RS.dwfNetProtocols = RASNP_Ip;             // протокол Интернета 
    RS.dwFramingProtocol = RASFP_Ppp;            // протокол Point-to-Point Protocol 
    RS.dwType = RASET_Broadband;      // тип подключения 
    RS.dwVpnStrategy = VS_Default;           // вкладка "Сеть" - По умолчанию 
    RS.dwEncryptionType = ET_Optional;          // параметры шифрования (ET_None, ET_Require, ET_RequireMax, ET_Optional) 
    RS.dwDialMode = RASEDM_DialAll; 
    RS.dwRedialCount = 99;                   // число повторов набора номера 
    RS.dwRedialPause = 120;                  // интервал между повторениями 
    lstrcpy(RS.szLocalPhoneNumber, TEXT("internet")); 
    lstrcpy(RS.szDeviceType, TEXT("VPN"));             // RASDT_PPPoE - обуславливает тип подключения (PPPoE) 
    lstrcpy(RS.szDeviceName, TEXT("VPN")); 
   
     DWORD dwRet = RasSetEntryProperties(NULL,TEXT("Имя_Соединения"), &RS, sizeof(RS), NULL, 0);
Вот пытаюсь написать на PB
PureBasic
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
ImportC "msvcrt.lib" 
   strstr ( *lpFirst.l, *lpSrch.l ) 
   strlen ( *str.l ) 
   strchr ( *strchr.l, char.l) 
   strrchr ( *strchr.l, char.l) 
   memset_ ( *str.l, char.l, length.l ) As "_memset@12" 
 EndImport 
 
 Structure RASIPADDR 
   a.b 
   b.b 
   c.b 
   d.b 
 EndStructure 
 
 Structure RASENTRY 
   dwSize.l 
   dwfOptions.l 
   dwCountryID.l 
   dwCountryCode.l 
   szAreaCode.c[#RAS_MaxAreaCode + 1] 
   szLocalPhoneNumber.c[#RAS_MaxPhoneNumber + 1] 
   dwAlternateOffset.l 
   ipaddr.RASIPADDR 
   ipaddrDns.RASIPADDR 
   ipaddrDnsAlt.RASIPADDR 
   ipaddrWins.RASIPADDR 
   ipaddrWinsAlt.RASIPADDR 
   dwFrameSize.l 
   dwfNetProtocols.l 
   dwFramingProtocol.l 
   szScript.c[#MAX_PATH] 
   szAutodialDll.c[#MAX_PATH] 
   szAutodialFunc.c[#MAX_PATH] 
   szDeviceType.c[#RAS_MaxDeviceType + 1] 
   szDeviceName.c[#RAS_MaxDeviceName + 1] 
   szX25PadType.c[#RAS_MaxPadType + 1] 
   szX25Address.c[#RAS_MaxX25Address + 1] 
   szX25Facilities.c[#RAS_MaxFacilities + 1] 
   szX25UserData.c[#RAS_MaxUserData + 1] 
   dwChannels.l 
   dwReserved1.l 
   dwReserved2.l 
   dwSubEntries.l 
   dwDialMode.l 
   dwDialExtraPercent.l 
   dwDialExtraSampleSeconds.l 
   dwHangUpExtraPercent.l 
   dwHangUpExtraSampleSeconds.l 
   dwIdleDisconnectSeconds.l 
   dwType.l 
   dwEncryptionType.l 
   dwCustomAuthKey.l 
   guidId.GUID 
   szCustomDialDll.c[#MAX_PATH] 
   dwVpnStrategy.l 
   dwfOptions2.l 
   dwfOptions3.l 
   szDnsSuffix.c[#RAS_MaxDnsSuffix] 
   dwTcpWindowSize.l 
   szPrerequisitePbk.c[#MAX_PATH] 
   szPrerequisiteEntry.c[#RAS_MaxEntryName + 1] 
   dwRedialCount.l 
   dwRedialPause.l 
   dwIPv4InterfaceMetric.l 
   dwIPv6InterfaceMetric.l 
   dwIPv6PrefixLength.l 
   dwNetworkOutageTime.l 
 EndStructure 
 
 VPNpar.RASENTRY 
 memset_ ( @VPNpar, 0, SizeOf(RASENTRY)) 
 dwSize.l = SizeOf(VPNpar); 
 dwFlags.l = #RASEO_PreviewUserPw | #RASEO_ModemLights | #RASEO_ShowDialingProgress | #RASEO_RemoteDefaultGateway | #RASEO_RequireEncryptedPw | #RASEO_RequireDataEncryption | #RASEO_RequireMsEncryptedPw; 
 dwFlags2.l = #RASEO2_DontNegotiateMultilink | #RASEO2_ReconnectIfDropped; 
 VPNpar\dwSize = dwSize 
 VPNpar\dwfOptions = dwFlags 
 VPNpar\dwfOptions2 = dwFlags2 
 VPNpar\dwfNetProtocols = #RASNP_Ip 
 VPNpar\dwFramingProtocol = #RASFP_Ppp 
 VPNpar\dwType = #RASET_Vpn 
 VPNpar\dwVpnStrategy = #VS_Default 
 VPNpar\dwEncryptionType = #ET_Optional 
 VPNpar\dwDialMode = #RASEDM_DialAll 
 VPNpar\dwRedialCount = 3 
 VPNpar\dwRedialPause = 60 
 PokeS(@VPNpar\szDeviceType,"VPN") 
 PokeS(@VPNpar\szLocalPhoneNumber,"192.168.110.11") 
 PokeS(@VPNpar\szDeviceName,"vpn") 
 
 result = RasSetEntryProperties_(#Null, "P", @VPNpar, SizeOf(RASENTRY), #Null, 0) 
 Debug result; // Возвращает 632
Буду очень рад, если поможете решить проблему

Добавлено через 1 минуту
Может не правильно структуру перевожу с С++ на PB
Мне кажется именно в ней вся проблема!
Но уже все перепробовал
0
Эксперт по электронике
6859 / 3283 / 339
Регистрация: 28.10.2011
Сообщений: 12,841
Записей в блоге: 7
31.03.2012, 11:45
По моему, структура немного отличается от той что в документации. http://msdn.microsoft.com/en-u... s.85).aspx

Добавлено через 2 минуты
Цитата Сообщение от LEX Посмотреть сообщение
Возвращает 632
Это ERROR_INVALID_SIZE то есть не правильный размер структуры.
0
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4
31.03.2012, 12:26  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
По моему, структура немного отличается от той что в документации. http://msdn.microsoft.com/en-u... s.85).aspx

Добавлено через 2 минуты
Это ERROR_INVALID_SIZE то есть не правильный размер структуры.
Вот именно, что я и не могу переписать ее правильно!
Если сможешь то помоги
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
31.03.2012, 14:58
ERROR_INVALID_SIZE - The value of the dwSize member of the lpRasEntry is too small.
Кажется, что #Null в Пукрике это не совсем то, что в С++ NULL согласно MSDN.
0
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4
31.03.2012, 15:13  [ТС]
Да даже просто 0 не канает! Находил другие примеры с RAS на PB там все работает!
Но вот с созданием VPN соединения трабла прям какая то
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.03.2012, 15:13
Помогаю со студенческими работами здесь

восстановление пароля VPN подключения
Подскажите пожалуйста как можно узнать пароль сохраненный в подключении VPN. Вариант с провайдером не подходит ибо владелец находится в...

Подключение к VPN и проверка подключения
Доброго времени форумчане, меня озадачил вопрос автономного подключения к впн сети и проверкой его пингом, если пинг прошел успешно то все...

Восстановление пароля vpn подключения
доброго времени суток. как всегда подключался по работе из дома по vpn подключению. была стандартная программа по подключению, но по...

Ошибка при поднятии VPN подключения
Добрый день! Пытаюсь подключиться , пишет ошибку

Как запретить vpn-подключения к компьютеру?
заранее спасибо.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru