Можно ли создать удаленную локальную сеть на Python?
Могу ли я сделать что-то похожее на RadminVPN или Hamachi, используя Python? То есть нужно чтобы была возможность создать локальную сеть и подключится к ней удаленно по ip с другого компьютера. Если, да то какие библиотеки стоит использовать? Заранее спасибо
Ответы (1 шт):
Можно, я делал.
Но кроме питона и библиотек понадобится драйвер виртуальной сети. Например , из простых, tun/tap (в линукс встроенный, в виндовс качайте с openvpn https://build.openvpn.net/downloads/releases/ в конце страницы). Вроде можно сделать на NDIS - но там надо залезть в системное программирование.
Библиотека никакая не нужна, но можно использовать для удобства python-pytuntap или python-pytun.
Суть tap драйвера в том что он создает пару - файловый дескриптор и интерфейс сети.
Пакеты попадая в интерфейс читаются байтами из файла и передаются вашей программой на прокси по интернету, прокси перенаправляет пакет в другой комп. Тот пишет байты в файл и из сетевушки вылетает пакет.
Если использовать вызов copyfile, то вполне приличная скорость получается.
Прокси можно исключить, но надо научиться делать p2p. Тут начните читать про stun.