кэширующий прокси-DNS на perl
Надо словить пакет от nslookup и вывести его на экран(хотябы так на первое время).
Код:
use IO::Socket;
$port =53;
$sock = new IO::Socket::INET (
LocalAddr=> 'localhost',
LocalPort => $port,
Proto => 'udp'
) or die "Error: $!";
while (1)
{
$sock->recv($packet,1024,0);
print $packet;
}
$port =53;
$sock = new IO::Socket::INET (
LocalAddr=> 'localhost',
LocalPort => $port,
Proto => 'udp'
) or die "Error: $!";
while (1)
{
$sock->recv($packet,1024,0);
print $packet;
}
этот код по идее работает, но при смене порта на 53 выдает ошибку. Подскажите пожалуйста как сделать чтобы все заработало
какую ошибку - это конечно же секрет? :) подозреваю, что вы пытаетесь пустить свю программу под обычным пользователем, так?
ЗЫ работаю из под админа.
Цитата:
кое где опечатался
и где?
в слове localhost, все уже исправлено, в первом посте рабочий код. Только делает он не то что надо. А как заставить его решить задачу я не знаю.
UDP 192.168.0.1:53 *:* 1444
вопрос, как освободить 53 порт?
Цитата: pincher2012
запустил netstat -aon | find ":53"
UDP 192.168.0.1:53 *:* 1444
вопрос, как освободить 53 порт?
UDP 192.168.0.1:53 *:* 1444
вопрос, как освободить 53 порт?
очевидно, остановить приложение, которое слушает 53-й порт :-) только если оно у вас слушает 53-й на 192.168.0.1, а вы бидитесь на локалхост - проблем быть не должно
ЗЫ мне наверное все-таки по задаче не локалхост надо слушать а INADDR_ANY
интернеты,то этот порт используется службой DNS.Неудивительно,что интернеты пропадают
Можно остановить службу DNS на время теста,пожалуйста
Ну если мне не изменяет память и
Можно остановить службу DNS на время теста,пожалуйста
192.168.0.1 это домашняя сеть, блин, долго до меня допирало. Выключил ее и все ок. Всем спасибо за помощь, дальше сам попробую.