Работа с TAP от OpenVPN
От: MikelSV http://www.centerix.ru
Дата: 14.06.10 10:36
Оценка:
Требуется создать виртуальный интерфейс и программно управлять им. для начала в windows.

Поставил OpenVPN, появился виртуальный интерфейс.

Пока не понятно, как написать программу для его активации и работы с ним.
Нет ли у вас примеров, желательно на С++.
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
Re: Работа с TAP от OpenVPN
От: MikelSV http://www.centerix.ru
Дата: 14.06.10 12:31
Оценка:
Немного разобрался. Получаю список интерфейсов GetAdaptersAddresses.

Затык в CreateFile() , которая не открывает "\\\\.\\{GUID}"

HANDLE fl=CreateFile("\\\\.\\{9B1CB8F4-582C-48D4-8CFE-52A44B3F7654}", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
Re[2]: Работа с TAP от OpenVPN
От: MikelSV http://www.centerix.ru
Дата: 15.06.10 09:53
Оценка:
Не работало, по тому, что я указал не те параметры.

Взял код из исходников OpnenVPN.

Теперь не работает DeviceIoControl. Драйвера стоят. Сетевые карты TAP видны. Куда копать не понятно.

        HANDLE fl=CreateFile("\\\\.\\"+tapuid, MAXIMUM_ALLOWED, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM | FILE_FLAG_OVERLAPPED, 0);
    if (fl == INVALID_HANDLE_VALUE) printf("CreateFile failed on TAP device: %s", tapuid);

    DWORD len=0;

    ULONG info[3];
    memset(&info, 0, sizeof(info));
    if (DeviceIoControl(fl, TAP_IOCTL_GET_VERSION,
             &info, sizeof (info),
             &info, sizeof (info), &len, NULL)){
    printf ("TAP-Win32 Driver Version %d.%d %s",
         (int) info[0],
         (int) info[1],
         (info[2] ? "(DEBUG)" : ""));
      }
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
Re[3]: Работа с TAP от OpenVPN
От: MikelSV http://www.centerix.ru
Дата: 15.06.10 10:30
Оценка:
Что же такое. Как отправлю сообщение, так посещает светлая мысль и ответ находится.

HANDLE fl=CreateFile("\\\\.\\Global\\"+tapuid+".tap", ...

HANDLE вроде тот же, а сейчас работает.

Думаю дальше я сам. А это будущим разработчикам.
И привет прошлым
Автор: Pzz
Дата: 09.11.07
, которые алгоритм расписали, а кода не дали. и на том спасибо.
Римское правило. Тот, кто говорит, что Это не может быть сделано, никогда не должен мешать тому, кто Это делает.
Осень, ну вы поняли.
Зачем еще один код? А человек?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.