• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Обмен По Udp Через Маршрутизатор

  • Автор темы YuryD
  • Дата начала
Y

YuryD

Здравствуйте.
Пишу UDP терминал для обмена пакетами с удаленным терминалом. Всё хорошо работает, пока оба терминала в одной подсети. Когда же один из терминалов запускают в другой подсети, т.е. через маршрутизатор, обмена нет. Ниже приведен код инициализации UDP сокетов. Нигде не задается ни маска подсети, ни шлюз. Это правильно?

sockfd1 = socket(AF_INET, SOCK_DGRAM, 0);
sockfd2 = socket(AF_INET, SOCK_DGRAM, 0);

ZeroMemory(&servaddr, sizeof(servaddr));
ZeroMemory(&cliaddr, sizeof(cliaddr));
cliaddr.sin_family = AF_INET;
cliaddr.sin_addr.s_addr = inet_addr("192.168.1.254");
cliaddr.sin_port = htons(6000);

servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(12345);
bind(sockfd1, (struct sockaddr *)&servaddr, sizeof(servaddr));

FD_ZERO(&fds);
FD_SET(sockfd1, &fds);

ReceiveTimeout.tv_sec = 0;
ReceiveTimeout.tv_usec = 5000000; // 5 s

sendto(sockfd2, req, strlen(req), 0, (struct sockaddr *)&cliaddr,sizeof(cliaddr));

iRC = select(sockfd1+1, &fds, NULL, NULL, &ReceiveTimeout);

if (iRC)
{
n = recv(sockfd1, recvstr, 100, 0);
///
...
///
}

Что надо дописать в код, чтобы оно работало через маршрутизатор?
Спасибо.
 
W

wowchock

Может на маршрутизаторе access-list не пропускает данный вид трафика?
 
V

Valimor

тоже скоро буду прогу под UDP протокол писать)
нашел в чем ощибка?
 
Y

YuryD

На самом деле проблемы не существует. Доступ из подсути в подсеть - это вопрос настроек сетевого адаптера, а не сокетов. При правильной настройке сетевых соединений обмен через сокеты производится без ограничений на количество шлюзов и организацию подсетей. С точки зрения программиста есть IP и есть порты, а как данные попадут от одного IP к другому должны заботиться сисадмины при организации сети.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!