С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 30.03.2012
Сообщений: 4

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

30.03.2012, 22:48. Показов 3538. Ответов 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
Эксперт по электронике
6528 / 3157 / 333
Регистрация: 28.10.2011
Сообщений: 12,400
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru