Вопрос

Я пытаюсь получить запись MX с DNS-сервера в C. Моя проблема в том, что каждый раз, когда я вызываю sendto или recvfrom, я получаю ошибку Permission denied. (IDE - Xcode 4, Mac OS X Lion) До этого момента я действительно ничего не делал на C, но мне это нужно для задания. «Вдохновение» от http:// www.binarytides.com/blog/dns-query-code-in-c-with-linux-sockets/ Мой код на данный момент:

родовое слово
Это было полезно?

Решение

Функция inet_addr принимает IP-адрес в строковой форме, а не имя хоста.Попробуйте заменить "ns1.sil.at" на его IP-адрес, "213.129.232.1"

Другие советы

В дополнение к ответу @ joni-salonen вам необходимо привязать сокет.
Используйте вызов функции bind.
Ему нужен код генерирующего кода, который идентифицирует локальную сторону сокета.Вы можете инициализировать его, используя семейство struct sockaddr_in, порт 0 и адрес AF_INET.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top