PDA

Просмотр полной версии : Создание Vpn,PPPoE соединений на Delphi?


ZirroCool
07.04.2008, 20:17
У меня вот какой вопрос, как програмным способом создать VPN и PPPoE соединение! Желательно поподробнее если можно! Так же буду рад любому сабжу по этой теме!

neprovad
08.04.2008, 08:45
создать, т.е. открыть существующее или создать новое подключение нужного типа?

GlOFF
08.04.2008, 11:11
Думаю здесь вопрос с нуля написать клиента Vpn... :)

ProTeuS
08.04.2008, 11:15
имхо он иммет ввиду создать новое подклю4ение = установки и ярлык подклю4ения соотвествующего типа в папке "сетевые поджклю4ения"

ZirroCool
08.04.2008, 13:23
имхо он иммет ввиду создать новое подклю4ение = установки и ярлык подклю4ения соотвествующего типа в папке "сетевые поджклю4ения"
В точку!

neprovad
09.04.2008, 07:56
почитай также вот это
http://msdn2.microsoft.com/en-us/library/ms899530.aspx

MNX
15.04.2008, 20:08
Приветствую, уважаемые =)
Извините за задержку в ответе, но!
Компонент:
http://slil.ru/25692156
procedure TForm1.Button1Click(Sender: TObject);
var
RE: TRasEntry;
DEV: array[1..100] of TRASDEVINFO;
i, j,cnt: integer;
begin
j := sizeof(DEV)*100;
DEV[1].dwSize := sizeof(TRASDEVINFO);
i := RasEnumDevicesA(@DEV[1], j, cnt);
Memo1.Lines.Add('j ='+IntToStr(j)+' i='+IntToStr(i)+' cnt='+IntToStr(cnt));
if i <> 0 then Memo1.Lines.Add('Ошипка!');
For i := 1 to cnt do Memo1.Lines.Add(DEV[i].szDeviceType+' = '+DEV[i].szDeviceName);

// RasCreatePhoneBookEntry(Form1.Handle,);
Fillchar(RE, sizeof(TRasEntry), 0);
RE.dwSize := sizeof(TRasEntry);
RE.dwfOptions := 66832;
// RASEO_RemoteDefaultGateway + RASEO_Custom + RASEO_RequireCHAP + RASEO_ShowDialingProgress;
RE.dwCountryID := 7;
RE.dwCountryCode := 7;
RE.szAreaCode := '';
RE.szLocalPhoneNumber := 'адрес для подключения';
RE.dwfNetProtocols := RASNP_Ip;
RE.dwFramingProtocol := RASFP_Ppp;
RE.szDeviceType := 'vpn';
RE.szDeviceName := 'WAN Miniport (L2PTP)';
// RE.szDeviceType := RASDT_Isdn;
try
i := RasSetEntryPropertiesA(nil, 'Название соединения', @RE, sizeof(TRasEntry), nil, 0);
if i = ERROR_BUFFER_INVALID then Memo1.Lines.Add('The address or buffer specified by lpRasEntry is invalid');
if i = ERROR_CANNOT_OPEN_PHONEBOOK then Memo1.Lines.Add('The phone book is corrupted or missing components');
except
Memo1.Lines.Add('Ашипка');
end;
end;
Если нужно, потом кину для PPPoE ;) Новичкам плюсеги в репу =)

Imperfect
09.09.2008, 13:14
Для PPPoE выложите пожалста..

sabotag
09.09.2008, 14:02
тоже интересует реализация на ПППоЕ....!!!!!

Dr.mOBSCENE
03.04.2009, 00:55
Приветствую, уважаемые =)
Извините за задержку в ответе, но!
Компонент:
http://slil.ru/25692156

Если нужно, потом кину для PPPoE ;) Новичкам плюсеги в репу =)
Если у кого осталось это счастье, перезалейте пожалуйста!

Antoha-RaND
02.08.2009, 20:16
Вот в принципе через Ras создание "pppoe" , тоже самое!

procedure TForm1.Button1Click(Sender: TObject);
var
RE: TRasEntry;
DEV: array[1..100] of TRASDEVINFO;
i, j,cnt: integer;
begin
j := sizeof(DEV)*100;
DEV[1].dwSize := sizeof(TRASDEVINFO);
i := RasEnumDevicesA(@DEV[1], j, cnt);
Memo1.Lines.Add('j ='+IntToStr(j)+' i='+IntToStr(i)+' cnt='+IntToStr(cnt));
if i <> 0 then Memo1.Lines.Add('Ошибка!');
For i := 1 to cnt do Memo1.Lines.Add(DEV[i].szDeviceType+' = '+DEV[i].szDeviceName);

// RasCreatePhoneBookEntry(Form1.Handl e,);
Fillchar(RE, sizeof(TRasEntry), 0);
RE.dwSize := sizeof(TRasEntry);
RE.dwfOptions := 1024262928;
RE.dwCountryID := 7;
RE.dwCountryCode := 7;
RE.szAreaCode := '';
RE.szLocalPhoneNumber := 'NVTC';
RE.dwfNetProtocols := RASNP_Ip;
RE.dwFramingProtocol := RASFP_Ppp;
RE.szDeviceType := 'pppoe';
RE.szDeviceName := 'WAN Miniport (L2PTP)';
// RE.szDeviceType := RASDT_Isdn;
try
i := RasSetEntryPropertiesA(nil, 'Nvtc PPPOE', @RE, sizeof(TRasEntry), nil, 0);
if i = ERROR_BUFFER_INVALID then Memo1.Lines.Add('The address or buffer specified by lpRasEntry is invalid');
if i = ERROR_CANNOT_OPEN_PHONEBOOK then Memo1.Lines.Add('The phone book is corrupted or missing components');
except
Memo1.Lines.Add('Ошибка');
end;
end;
end.