С помощью моей программы LAN-клиенты (читай 'игры'), которые не позволяют напрямую указать IP-адрес сервера для соединения, могут находить сервера, запущенные в других подсетях.
Принцип действия:
В 6ольшинстве игр нет консоли, где можно написать "connect A.B.C.D", а есть только кнопка "Найти сервер", при нажатии на которую игра начинает поиск серверов в ПРЕДЕЛАХ ВАШЕЙ ПОДСЕТИ с помощью широковещательной рассылки пакетов на адрес 255.255.255.255 (0xFFFFFFFF). Но они не будут перенаправлены шлюзом в другие подсети.
Данная программа (с помощью библиотеки WinPcap) отфильтровывает эти broаdcast-пакеты, изменяет в них
адрес назначения (255.255.255.255) на заданный пользователем адрес сервера и отправляет модифицированную копию пакета в сеть. Далее сервер получает этот пакет, отвечает на него и соединение устанавливается. Дальнейший обмен данными между сервером и клиентом идет уже без участия данной программы, она необходима только на этапе поиска сервера.
На скрине пример использования программы
(мой ip 10.19.22.238, а подключиться хочу к 10.36.12.217):
- сначала вводим IP-адрес сервера, куда хотим подключиться
- далее программа показывает список всех сетевых интерфейсов, найденных в системе
- я выбрал 5ый, т.к. подключен к РГА через него
Для работы программы на компьютере пользователя должны быть установлены (входят в комплект поставки)
1) vcredist_x86.exe - Microsoft Visual C++ 2008 Redistributable (иначе возникнет ошибка 'Приложению не удалось запуститься поскольку ***8203;оно некорректно настроено. Повторная установка приложения может ***8203;устранить проблему')
2) WinPcap_4_0_2.exe - библиотека WinPcap (open source library for packet capture and network analysis) (желательно версии 4.0.2 или выше)
Вложение 218087