Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: писать ли драйвер или нет для тоннеля между 2мя и более компьютерами?  (Прочитано 19144 раз)
0 Пользователей и 1 Гость смотрят эту тему.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« : 12-01-2009 14:41 » 

Хочу написать программу которая будет создавать туннель между 2 и более компьютерами. Здесь насколько я понял нужно перехватывать пакеты, идущие в определенную заренее известную сеть, менять его содержимое, и отправлять далее.

у меня вопрос:
1. Нужно ли писать драйвер для перехвата пакета, или можно обойтись без него. Если да то какое по использовать?
2. Для тунеля навернека потребуеться виртуальный интернет адаптер, на него будут отправляться пакеты, а я ловить. Какой адаптер подойдет для этой цели?
« Последнее редактирование: 13-01-2009 07:56 от Алексей1153++ » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 13-01-2009 06:52 » 

а что подразумевается под словом тунель?) функции какие?
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #2 : 13-01-2009 07:21 » 

Цитата
а что подразумевается под словом тунель?) функции какие?
Нет. Может я неправильно выразился.Я хочу создать VPN(virtual private network). Которые обьединила бы компьютеры в одну сеть, фактически я создам тунели между компами, и скажу то что это сеть. Физически эти компьютеры находяться в интернете, в разных сетях. Я видел некоторые реализации VPN, особенно openvpn, но в них нужен сервер и клиент, а мне сервер некуда ставить. Поэтому я придумал способ обойтись без него. вот и хочу написать прогу, к-я это делала.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 13-01-2009 08:17 » 

heor, вопрос: теорию построения сетей и маршрутизации ты знаешь хорошо?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #4 : 13-01-2009 08:55 » 

Цитата
heor, вопрос: теорию построения сетей и маршрутизации ты знаешь хорошо?
Немножко знаю. какие бывают сети, и что такое маршрутизация. А причем здесь это?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 13-01-2009 10:01 » 

При том: как ты себе представляешь структуру такой сети? Каждый с каждым?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #6 : 13-01-2009 10:30 » 

Да. а как иначе?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 13-01-2009 11:30 » 

heor, как машина, которая должна войти в эту сеть, узнает список всех узлов?
Ведь, чтобы добавить новый узел, его придется прописывать на всех существующих узлах.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #8 : 13-01-2009 13:36 » 

Это не вопрос. Я думаю сервер все таки будет, пока незнаю что это за сервер. Я хочу как-то связать 2 машины, ip адреса которых заранее известны. Организовать список ip я думаю не проблема, чтоб машина получала его. Труднее будет с широковешательными пакетами.

Пробовал написать драйвер. Но у меня выдает ошибку
Код:
error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl NdisInitializeWrapper(void * *,void *,void *,void *)" (__imp_?NdisInitializeWrapper@@YAXPAPAXPAX11@Z) referenced in function "long __cdecl DriverEntry(struct _DRIVER_OBJECT *,struct _UNICODE_STRING *)" (?DriverEntry@@YAJPAU_DRIVER_OBJECT@@PAU_UNICODE_STRING@@@Z)
Насколько я понял надо подключить модуль ndis.lib. я его прописал в Additional Dependencies, и скопировал в папку. Все равно он выдает эту же ошибку. Что делать?
Записан
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #9 : 13-01-2009 17:11 » 

Разобрался. Надо откомпилировать как Compile as C Code (/TC), а не Compile as C++ Code (/TP).
Есть ли другой способ, кроме написания драйвера, перехватить пакет?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 13-01-2009 17:19 » 

heor, зачем писать драйвер - вот это не понятно. Создается ощущение, что задача не проработана.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #11 : 13-01-2009 18:42 » 

heor, Если у тебя будут только статические адреса у всех хостов, тогда я понимаю примерно твою мыслю Но для динамических IP адресов, как ты примерно видиш картину построения VPN сети без серверов? Даже в концепции ּSkype есть понятие сервера в той или иной мере.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #12 : 14-01-2009 07:04 » 

Цитата
heor, зачем писать драйвер - вот это не понятно.
Вот и я о том же. Можно без драйвера, перехватить пакет, изменить его содержимое, и отправить по другому адресу.

Finch, я пришел к выводу что без сервера никак, так что все таки сервер будет, но не ввиде программы, а ввиде веб сервера, скорее всего так, это дешевле, чем брать отдельный компьютер и ставить на него vpn.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #13 : 14-01-2009 07:08 » 

heor,

1. ты ничего о перехвате пакетов и подмене данных в них не говорил, а говорил лишь то что тебе нужно соединить два компа во wi-fi.
2. а причем тут веб сервер?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #14 : 14-01-2009 08:28 » 

Цитата
ты ничего о перехвате пакетов и подмене данных в них не говорил.
А как ты представляешь тунелирование?

Вот как я представляю:
Есть виртуальная сеть 10.0.0.0/8, есть компьютеры в этой сети, и мы знаем для них реальные адреса в интернете. Мы перехватываем паке идущий в эту сеть, меняем заголовок, и отправляем его на соответсвующий реальный адрес. Я прочитал здесь http://www.ntoskrnl.com/wpfk-help/whatis.htm.
Цитата
Packets tunneling. Example: packets captured from the network (or from MSTCP) delivered into the user mode and tunneled to the remote system inside SSL stream. Remote system can indicate them to MSTCP (or send over network) after extracting packets from the SSL stream. Classic approaches like ‘IP in IP’ can also be implemented.

Веб сервер нужен чтоб узнать IP адреса.
« Последнее редактирование: 14-01-2009 08:30 от heor » Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #15 : 14-01-2009 08:32 » 

Цитата
ты ничего о перехвате пакетов и подмене данных в них не говорил.
А как ты представляешь тунелирование?

так это я заработался, перепутал темы Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #16 : 14-01-2009 08:33 » 

Веб сервер нужен чтоб узнать IP адреса.

а почему Веб? Как допустим Apache тебе в этом поможет?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #17 : 14-01-2009 08:37 » 

Цитата
а почему Веб? Как допустим Apache тебе в этом поможет?
Надо просто создать сайт на php, который делал всю работу по добавлению, и удалению пользователей. Как это сделано в torrent. Торренты тоже обращаються к веб серверу, берут оттуда инфу, и качают, все работает и причем неплохо.

Ну а можно написать программу сервер, вместо веб сервера.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #18 : 14-01-2009 08:42 » 

heor, видимо ты не о том говоришь. Сервер смотрящий сетевым интерфейсом в интернет не называется Веб сервером. Зачем целый сайт на php, почему именно php?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #19 : 14-01-2009 08:54 » 

Цитата
Зачем целый сайт на php, почему именно php.
Целый сайт не обязателен, хотя можно и создать. Поидее можно обойтись одним php скриптом. Главное чтобы апаче поддерживал сокеты, и мог отправлять пакеты, иначе ничего не выйдет.

Почему php. php легче. Да и потому что больше я незнаю другого. слышал что есть cgi скрипты и еще perl. Можно через них.
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #20 : 14-01-2009 08:56 » 

perl было бы лучше, потому как не нужно поднимать Apache, достаточно подключить необходимые модули.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #21 : 14-01-2009 09:06 » 

1. а будут работать сокеты? или это зависит от того какой хост будет?
2. если напишу драйвер, будет ли он перехватывать IPX пакеты (NETBIOS), а то некоторые старые игрушки поддерживают его?
Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #22 : 14-01-2009 09:07 » 

1. это ты сейчас о чем? Если написать на perl? Так все зависит от того как ты напишешь.
2. опять таки, зависит от того как ты напишешь.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
heor
Интересующийся

kz
Offline Offline
Пол: Мужской

« Ответ #23 : 14-01-2009 09:17 » 

1. Да я имел ввиду perl.
2. а passThru из DDK перехватывает IPX Пакеты?
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 17-01-2009 21:47 » 

увы, сетевыми никогда не занимался - поэтому на вскидку не скажу... сам пример смотреть  надо, а времени сейчас совсем нет(
 сердцем чувствую что скорее всего да... но могу ошибаться)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines