63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484

Как проверить сколько серверов в локальной сети слушают порт

27.03.2020, 13:26. Показов 2605. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно определить ip адреса серверов в локальной сети который слушают определенный порт , всего адресов 255*255 получается, как это сделать?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2020, 13:26
Ответы с готовыми решениями:

Нахождение серверов в локальной сети
Всем привет, суть заключается в чём, у меня есть форма на которой Server и Client Сокет. Можно создать сервер нажав на кнопку "Создать...

Не видно в играх серверов по локальной сети
Всем привет! В общем: Есть локалка из 2х компов (ПК и ноут) 1. на ПК стоит WinXP SP3 сборка XTreme. +интернет через ADSL модем который...

Создание локальной сети из SIP-серверов
Хочется узнать какие лучше использовать SIP-серверы, чтобы получилось зарегистрировать на каждом из них по софтфону и связаться друг с...

5
Заблокирован
27.03.2020, 15:30
ReYalp, где-то я тебя уже видел...
Есть программа которая обзванивает сеть, здесь.
0
 Аватар для Annemesski
2637 / 1304 / 473
Регистрация: 08.11.2016
Сообщений: 3,602
27.03.2020, 16:49
Лучший ответ Сообщение было отмечено ReYalp как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#define WIN32_LEAN_AND_MEAN
 
#include <WinSock2.h>
#include <iostream>
#include <string>
#include <list>
 
#pragma comment(lib, "ws2_32.lib")
 
std::list<std::string> ServersAvaliable(const std::string &subnet, const unsigned &port)
{
    WSADATA wsaData;
 
    int iResult = 0;
 
    iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
 
    std::list<std::string> ret;
 
    timeval timeout;
    timeout.tv_sec = 0;
    timeout.tv_usec = 200000;
 
    char itoaBuff[10];
 
    for (unsigned addr = 1; addr < 255; addr++)
    {
        SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
        unsigned long iMode = 1;
        ioctlsocket(sock, FIONBIO, &iMode);
 
        sockaddr_in srv;
        srv.sin_family = AF_INET;
        srv.sin_addr.S_un.S_addr = inet_addr((subnet + _itoa(addr, itoaBuff, 10)).c_str());
        srv.sin_port = htons(port);
        
        fd_set set;
        FD_ZERO(&set); 
        FD_SET(sock, &set);
 
        int conn = connect(sock, (sockaddr*)&srv, sizeof(srv));
 
        if (WSAGetLastError() == WSAEWOULDBLOCK)
        {
            select(sock + 1, NULL, &set, NULL, &timeout);
            if (FD_ISSET(sock, &set))
                ret.push_back(subnet + _itoa(addr, itoaBuff, 10));
        }
        closesocket(sock);
    }
    return ret;
}
 
int main()
{
    std::string subnet = "192.168.102.";
    unsigned port = 8080;
    std::list<std::string> srvs = ServersAvaliable(subnet, port);
    if (!srvs.empty())
    {
        auto ptr = srvs.begin();
        unsigned i = 1;
        while (ptr != srvs.end())
        {
            std::cout << i << ". " << ptr->c_str() << " - avaliable at port #135" << std::endl;
            i++;
            ptr++;
        }
    }
    else
        std::cout << "ServersAvaliable returned empty list" << std::endl;
    
        
    system("pause");
    return 0;
}
5
Заблокирован
27.03.2020, 17:13
Annemesski, молодец!
0
28.03.2020, 11:13

Не по теме:

можно с помощью nmap попробовать. правда, не уверен, что там есть библиотека, которую можно прилинковать и использовать.

0
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
28.03.2020, 13:48  [ТС]
Annemesski, для оптимизации лучше select использовать вне цикла и сразу на целом сете сокетов, ато 255*255 долго будет проверять
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2020, 13:48
Помогаю со студенческими работами здесь

Как проверить наличие подключения к локальной сети
Часто приходится отключаться от локальной сети для подключения к Интернету. А как можно проверить - есть ли подключение, чтобы в...

Доступ из локальной сети и 80 порт
Добрый день. Есть Server 2003 на нем apache 2.2, php 3 и mysql 5. Прописываю Listen 10.168.*.*:80. Сайт из локальной сети недоступен,...

Перенаправление на Web-страницу в локальной сети, по внешнему адресу через порт
День добрый. Прошу помочь. На предприятии есть 2 сайта. Один внешний адрес. По внешнему адресу можно попасть на основную страницу, в...

Настройка локальной сети между двумя серверами через локальный порт.
Добрый день, Уважаемые Знатоки и Искушенные Повелители Линукса:) Буду очень признателен за помощь в данном вопросе, не судите строго, я не...

Проверить IP в Локальной сети
Привет всем, подскажите как мне проверить отзывается ли в локальной сети ПК с заданным IP адресом.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru