Страница 1 из 1

Поиск тонких клиентов в сети

Добавлено: Вс май 18, 2025 4:30 pm
erasty
Добрый день, подскажите, можно ли найти все активные тонкие клиенты в сети? Например по какому-то уникальному порту, который слушает только wtware или т.п
Мне нужно собирать список активных терминалов и выводить в табличку.
Спасибо

Re: Поиск тонаких клиентов в сети

Добавлено: Вс май 18, 2025 10:48 pm
aka
Можно. Разослать широковещательный UDP пакет, состоящий из одного байта 0x01, на порт 779. Все активные тонкие клиенты ответят. Так делает втваревый конфигуратор, когда запускается.

Чем собираешься рассылать?

Re: Поиск тонаких клиентов в сети

Добавлено: Пн май 19, 2025 10:21 am
erasty
aka писал(а): Вс май 18, 2025 10:48 pm Можно. Разослать широковещательный UDP пакет, состоящий из одного байта 0x01, на порт 779. Все активные тонкие клиенты ответят. Так делает втваревый конфигуратор, когда запускается.

Чем собираешься рассылать?
Собирался рассылать скриптом на golang, по типу такого:

Код: Выделить всё

func main() {
	// бродкаст
	broadcastAddr, err := net.ResolveUDPAddr("udp", "192.168.1.255:779")
	if err != nil {
		fmt.Println("Ошибка разрешения адреса:", err)
		return
	}
	// Создаем UDP-соединение
	conn, err := net.DialUDP("udp", nil, broadcastAddr)
	if err != nil {
		fmt.Println("Ошибка создания соединения:", err)
		return
	}
	defer conn.Close()

	message := []byte{0x01}
	_, err = conn.Write(message)
	if err != nil {
		fmt.Println("Ошибка отправки пакета:", err)
		return
	}

	conn.SetReadDeadline(time.Now().Add(2 * time.Second))

	buffer := make([]byte, 1024)
	respondedIPs := make(map[string]struct{})
	for {
		n, addr, err := conn.ReadFromUDP(buffer)
		if err != nil {
			break
		}
		respondedIPs[addr.IP.String()] = struct{}{}
		fmt.Printf("Ответ от %s: %s\n", addr.IP.String(), buffer[:n])
	}
	// Выводим список уникальных IP-адресов
	fmt.Println("Уникальные IP-адреса, которые ответили:")
	for ip := range respondedIPs {
		fmt.Println(ip)
	}
}

Re: Поиск тонаких клиентов в сети

Добавлено: Пн май 19, 2025 12:49 pm
aka
:shock:
Сработало? На С для отперавки броадкастов ещё опцию SO_BROADCAST надо прописать сокету.

Re: Поиск тонаких клиентов в сети

Добавлено: Вт май 20, 2025 9:34 pm
erasty
aka писал(а): Пн май 19, 2025 12:49 pm :shock:
Сработало? На С для отперавки броадкастов ещё опцию SO_BROADCAST надо прописать сокету.
Пока в процессе, как доделаю напишу если интересно