| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > создание vpn в delphi |
| Автор: Namtar 18.9.2009, 10:35 |
| Всем привет! появилась необходимость создания программы, которая бы позволила 2-ум компьютерам (подключенных к инету) передавать данные друг другу! я так понял для этого необходимо на одном из них создать сервер vpn, а 2-ой должен к нему коннектиться. хотелось бы узнать какими средствами delphi это можно сделать и как? заранее спасибо |
| Автор: niteo 18.9.2009, 12:36 |
| А программу писать тебе зачем? Используй NetSupport если в XP или стандартные средства системы.... Если приперло, можно и без vpn. Проще ftp ИМХО |
| Автор: Namtar 21.9.2009, 08:03 |
| надо именно программу, т.к. это будет специальная прога для управления одного девайса через сеть с возможностью запуска проги откуда угодно! так что необходимо мастерить! |
| Автор: 1000000dollars 21.9.2009, 09:42 | ||
На одной машине прога открывает серверный сокет, а другая коннектится к ней через клиентский сокет. Есть три варианта: - Если одна из машин имеет "белый" IP адрес - она и будет сервером. - Если обе имеют "белые" IP адреса - всё равно какая будет сервром, а какая клиентом. - Если обе имеют "серые" IP адреса - нужно найти машину с белым IP и сделать из неё VPN сервер, к которому будут коннектиться обе машины. После попадания в vpn, если всё нормально настроено, машины будут видеть друг друга по их IP в VPN. |
| Автор: Virtuals 22.9.2009, 12:18 |
| 1000000dollars, +1 ЗЫ добавлю только что VPN в 3м случае не обязателен. (если управление не реалтайм, ну или обьем трафика небольшой и скорости некритичны) достаточно и обычного SQL сервера с какой либо "мордой" ну а если шибко хочется VPN не нужно изобретать велосипед есть уже нормальный проект OpenVPN, сами понимаете с какой лицензией |
| Автор: 1000000dollars 22.9.2009, 14:05 | ||
ну тогда уж проще взять IRC или тот же FTP |
| Автор: Namtar 22.9.2009, 21:02 |
| "белый" это типа паблик, прямой ip в сети? |
| Автор: apostolnikolai 23.9.2009, 08:16 |
| Используй rasobj Добавлено через 22 секунды могу компонент подкинуть с примером Добавлено через 2 минуты и 48 секунд это для создания ВПН |
| Автор: niteo 23.9.2009, 09:32 |
| нафига VPN ????? Если ему девайсом управлять??? |
| Автор: Namtar 24.9.2009, 09:58 |
| подкинуть компоненту было бы неплохо! |
| Автор: 1000000dollars 24.9.2009, 12:43 | ||||
"белый", но же внешний IP адрес - это адрес из разрешённого для использования в сети Интернет диапазона. (он точно не начинается с 192.168., 10., и 172.16, 172.17, 172.18 и так далее до 172.31)
Если я правильно помню, он может только подключиться к VPN серверу. Сам же VPN сервер придётся поднимать самому (если, конечно, нет уже поднятого). |
| Автор: Namtar 25.9.2009, 19:16 |
| а создать vpn программно в delphi можно? |
| Автор: Virtuals 27.9.2009, 06:21 |
| Namtar, можно ибо подымать структуру "виртуальной частной сети" это как из пушки по тараканам ЗЫ ну так, белый IP у станции с девайсом есть? |
| Автор: Namtar 29.9.2009, 21:12 |
| ну насколько я знаю есть, но на всякий случай и возможность vpn надо предусмотреть! |
| Автор: Virtuals 30.9.2009, 05:10 |
| Namtar, vpn в любом случае потребует хотя-бы 1 белый ИП. а так пользуй клиент-серверное соединение. хоть на тех же TServerSocket TClientSocket (примеры есть в папке с дельфи) или используй компоненты ICS. |
| Автор: apostolnikolai 30.9.2009, 12:29 |
| Namtar, ну так что компонент для VPN и PPPoE нужен ? куда кидать ? |
| Автор: Namtar 8.10.2009, 17:33 |
| [email protected] - сюда кидай! |
| Автор: Namtar 21.10.2009, 21:42 |
| народ, есть вопрос! забил болт на vpn - соединение происходит напрямую. сервер создается через IdTCPServer так: function TServerFrm.StartServer: Boolean; var Binding : TIdSocketHandle; begin Result:= False; if not StopServer then exit; TCPServer.Bindings.Clear; try Binding := TCPServer.Bindings.Add; Binding.IP := EdIP.Text; Binding.Port := StrToInt(EdPort.Text); TCPServer.Active := true; result := TCPServer.Active; ServerRunning := result; except on E : Exception do begin PnStatus.Caption:= E.Message; Result := false; ServerRunning := result; end; end; end; а клиент коннектится через IdTCPClient procedure TForm1.Button1Click(Sender: TObject); begin TCPClient.Disconnect; TCPClient.Host:= Edit1.Text; TCPClient.Port:= StrToInt(Edit2.Text); try TCPClient.Connect; except end; end; типа того. необходимо после того как я передал инфу с клиента (через TCPClient.WriteLn(Edit3.Text) ) чтобы от сервера вернулось тоже самое обратно на клиент (что-то наподобие обратной связи), т.к. будет графическое отображение изменений, и клиентов приконнекченных к серверу скорее всего будет больше 1-го! возможно ли это, и если да, то как и какими командами! заранее спасибо! |
| Автор: php 11.11.2009, 12:51 | ||
Конечно нужен, сюда можешь выложить? т.к очень интересует сей вопрос.. |
| Автор: crazynetwork 12.11.2009, 00:13 |
| +1 |
| Автор: dvamaster 19.11.2009, 14:41 | ||
аплодирую |