Вопрос по dns, perl, linux, c – Очень простой DNS-сервер

9

У меня на сервере Linux есть специальная беспроводная сеть для подключения клиентов. После подключения я хочу, чтобы пользователи всегда перенаправлялись на собственный веб-сервер, независимо от того, какой URL-адрес они вводят. Большим решением было бы установить полный DNS-сервер (с BIND или аналогичным), но это выглядит как перебор. Все, что мне нужно, это простая программа, которая будет прослушивать любой DNS-запрос и всегда отвечать с одним и тем же IP-адресом.

Я посмотрел вокруг, но не смог найти ни одного. Желательно, чтобы он был написан на C или Perl, поскольку я действительно не хочу устанавливать какие-либо другие языки сценариев.

Вы можете использовать dnsmasq (DNS + DHCP просто) dAm2K
FWIW, использование DNS для перехвата клиентов на беспроводных точках доступа в настоящее время считается плохой практикой, поскольку это мешает работе DNS-кэша. Достойные пленники портала теперь используют вместо этого перехват HTTP. Alnitak
Как насчет dnsmasq: Serverfault.com / д / 351108 Greg Inozemtsev

Ваш Ответ

4   ответа
10
Потрясающе. Благодарность jasonlfunk
7

Dnsmasq. Он более полнофункциональный, чем вам абсолютно необходимо, но он очень хорошо написан, небольшой и простой в установке, и единственная конфигурация, которую вам нужно будет предоставить, это--address='/#/1.2.3.4' сказать ему, чтобы он отвечал на все запросы (не соответствующие другому правилу) с адресом 1.2.3.4. dnsmasq хорошо известен и поддерживается и, вероятно, более надежный сервер, чем Net :: DNS :: Nameserver.

2

Fakedns.py при обращении вредоносного ПО. Это может быть слишком ограниченным для вашей ситуации.

2

я написал базовый DNS-сервер на C ++ для собеседования по лицензии BSD.

Я думаю, что код был довольно чистым, хотя я не проводил модульные тесты :-( Я тестировал его с помощью dig, и потребовалось около недели, чтобы понять протокол DNS + внедрение + документация.

Если кто-то захочет продлить его, я думаю, это будет не очень сложно. Потому что я думаю, что он поддерживает только обратные запросы, как это было задано в упражнении.

Код можно найти здесь:http: //code.google.com/p/dns-server

Это было перенесено в:https: //github.com/tomasorti/dns-serve

Похожие вопросы