Василий Дёмин, Очень просто - отправить по адресу запрос, если не отвечает адрес удалить или блокировать так чтоб он не участвовал в собственной рассылке.
Василий Дёмин, Как уже писали выше, любой IP - это узел. Узел - это устройство, подключенное к сети (это может быть компьютер/роутер/принтер ...).
1.Не давайте пользователям менять список узлов.
2.Обратитесь к разработчикам приложения, чтоб они ввели проверку на правильность введенного адреса.
Вы то сами отличаете обычное соединение от узла?
Поясните, что имеете ввиду под обычным соединением и как по вашему они должны отличаться от узлов?
Как по мне - это совершенно разные вещи и их не нужно сравнивать и тем более отличать.
jcmvbkbc, В общем согласен, но не для случая предложенного ТС - для однобайтного хэша слишком много коллизий на каждый хэш.
Если подобрать подходящую хэш функцию, возвращающую двух-байтные хэши, то будет достаточно не плохо. В этом случае для каждого хэша будет по 2-3 коллизии.
Массив структур ничем особым не отличается от массива, например, intов, только по указателю становятся доступны все члены текущей структуры.
Читать про массивы и указатели У K&R или у Страуструпа.
Возможно конфликт мастер-браузеров, это в принципе лечится ручным назначением мастер-браузера в сети. Гуглите.
Если по простому - воспользуйтесь советом АртемЪ и пропишите все имена компов (или только нужного) в файл hosts на всех компах в сети.
romajke, Операция
arr[k]=word;
Не приводит к копированию строки из одного буфера в другой - этим вы сохраняете адрес буфера word в массив. Поэтому у вас все элементы массива будут ссылаться на один и тот же буфер. Кроме того, что при этом вы получаете не правильный результат, у вас еще образуется утечка памяти, т.к. указатели, на выделенную с помощью malloc память, потеряны и во free вы передаете указатель на word, что при этом освобождается ... не известно и поведение не предсказуемо.
Вы правильно решили проблему, явно копируя строку с помощью strcpy. Аналогично нужно делать и с любыми другими массивами только использовать функцию memcpy (с помощью memcpy можно копировать и строки то же, она в этом плане универсальнее чем strcpy).
Ну и на последок - в Си как таковых строк нет, строка - это массив байт, оканчивающийся байтом со значением 0 (нулевой байт то же является частью массива/строки), поэтому и думать нужно о них как о массивах. Различие в том, что под строкой вы понимаете какую-то самостоятельную единую сущность, а это не так - это набор сущностей (байт).
romajke, Проверка
if (arr[i])
в вашем случае не срабатывает.
Потому что, чтоб в arr[i] были нули (т.е. условие ложно) их нужно туда присвоить, а у вас этого нет.
Перед чтением из файла, присвойте всем значениям arr нули.
Потом, когда будете выделять память для строк значащие элементы примут значения !=0, а пустые строки так и останутся нулями и условие отработает как надо.
John, можно, только не с оригинальным PuTTY (она настройки сохраняет в реестре), есть клоны, которые работают с конфигурационными файлами, например KiTTY :)
Артем Филимонов, Типы данных из inttypes.h более информативны.
Размер long long и long может быть разным в зависимости от платформы, а uintX_t - всегда заданного размера. А вам тут важно соблюсти размер. Так что лучше оставить эти типы.
RJ94, Не достаточно ясно, да.
RDP файл - это не ярлык Windows,
RDP файл можно сделать, запустив mstsc, сделав необходимые настройки и нажав на кнопку "Сохранить как" - сохраняйте в файл на рабочем столе. Вот там, в настройках, есть вкладка Программы там можно настроить запуск вложенного mstsc. Для вложенного подключения так же можно на удаленном сервере сделать свой RDP файл, который указать в параметрах запуска вложенного mstsc.
На счет ошибки при запуске вложенного mstsc:
1. %PC-name% - это вы так и указываете в команде? У вас есть переменная окружения PC-name?
2.Попробуйте для вложенного mstsc написать полный путь (относительно удаленного сервера) или создайте на сервере батник, в который запишите команду mstsc с необходимыми параметрами.
Вообще потренируйтесь на чем-нибудь попроще - запустите для начала блокнот или командную строку, если с этим все будет удачно, то можно перейти и к mstsc.
Схема точно рабочая сам много лет использовал подобную для подключения к консоли удаленных компьютеров через промежуточный терминальный сервер. Правда я запускал не mstsc, а shadow.
Если у вас роутер действительно с серым адресом, то без Ростелекома ваши хотелки не сделать. А конкретно для вас за бесплатно Ростелеком не станет делать дырки в своем НАТе.
Есть вариант - внешний ВПН сервер с белым адресом, к которому будет подключаться ваш роутер и ваш андроид. Но обычно это удовольствие не бесплатное. В этом случае проще и дешевле будет купить у того же Ростелекома белый статический адрес.
Все остальное делается по мануалам из интернета. Пошаговой инструкции вы вряд ли найдете, т.к. подробности сильно зависят от имеющегося оборудования и конкретной конфигурации.
Павел Грузных, Socks5 тут не при чем. Достаточно в софте указать адрес localhost и локальный порт, настроенный в PuTTY, в качестве адреса сервера. Поддержка любых типов прокси в софте не требуется.
Раньше, помнится, был из коробки. Какие сейчас коробки для ДОСа - не в курсе.
Посмотрите есть ли debug.exe в каталоге с утилитами из комплекта ДОС. Там обычно бывает довольно много утилит, если у вас полная коробка, а не только io.sys , msdos.sys и command.com.