Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Мониторинг сети и серверов Ребят, нубу нужна помощь. Так сложилось, что нужно написать программу, которая будет мониторить состояние серверов (нагрузку на ЦП, загруженность хардов, оперативки и т.д.) и загруженность сетки в реальном времени (образно конечно, мб каждые 5-10 секунд) и постоянно передавать инфу в виде "такой-то сервак сейчас самый не загруженный" другой проге, а так же выводить данные о загруженности... https://www.cyberforum.ru/ cpp-networks/ thread1714680.html Реализация клиент-серверного взаимодействия C++
Привет. Нужна помощь, необходимо написать клиент-сервер, в котором реализовать следующие возможности: 1) при подключении клиент вводит доменное имя и номер порта (необходима произвольная или заданная количество клиентов) 2) он посылает сообщение на сервер, в котором указывает свое имя и произвольное число 3) сервер принимает сообщение и проверяет данное числа поступивших и определяет...
C++ Ping flood Доброго времени суток, перейду сразу к делу. Вот само задание: Сгенерировать на узле XP от имени узла A ICMP-запросы к узлам С, B, D, организовав «лавинное затопление ICMP-пакетами» узла A. Схема ниже. Я собираю пакет вот так. int Send_icmp(pcap_t * fp,int comp) { u_char packet; //собственно наш пакет //MAC-адрес получателя https://www.cyberforum.ru/ cpp-networks/ thread1713502.html C++ мессенжер + парсер https://www.cyberforum.ru/ cpp-networks/ thread1711275.html
Добрый день, хочу спросить, как причесать получше этот код , читающий пакеты из файла, парсящий их, и отправляющий по udp? Общий принцип тут "тяни - толкай", просто я чувствую что с точки зрения красоты кода здесь неправильно написано, хоть и работает, кто что может сказать? /* тут приходит вызов от парсера при разборе пакетов, если пакет распарсился, его складывают в контейнер*/ void...
Исследование метод доступа к физической среде на основе стандарта IEEE 802.11 (Wi-Fi) C++
"исследование метод доступа к физической среде на основе стандарта IEEE 802.11 (Wi-Fi) с помощью имитационного моделирования." ищу книги/сайты/статьи по IEEE 802.11 и доступа к физ уровню (желательно для чайников) как проводить моделирование? какие программы есть для етого? и информацию по етому. да знаю я про сайт google.com, просто хочу получить информацию возможно от знающих людей
C++ Close socket почему select не реагирует? Или не должен? https://www.cyberforum.ru/ cpp-networks/ thread1707583.html
Здравствуйте Не могу никак разобраться как происходит закрытие сокета. Linux. У меня есть сервер работает на select-е. И есть клиент. Как на сервере определить розорвано ли соединение со стороны клиента. Я закрываю сокет функцией close() но select на сервере никак на это не реагирует. Реагирует только когда я закрываю окно клиента. Только тогда я могу считать информацию с клиента и...
C++ Порт сокета, присваеваемый провайдером https://www.cyberforum.ru/ cpp-networks/ thread1706865.html
как сокету узнать порт, с которого провайдер отправляет его сообщения? Добавлено через 9 минут может есть какой то сайт, который вернёт не только ip но и порт, с которого пришёл запрос
C++ Как вытащить access_token из браузера?
Здравствуйте! Не могу понять, как получить access_token. Допустим, я запускаю браузер с нужным POST-запросом. Далее пользователь вводит свои данные авторизации, бла, бла, бла, и далее, в случае успешной авторизации, происходит перенаправление на страницу (указанную в POST-запросе), в которой и будет access_token. Вопрос в следующем: как вытащить access_token из браузера?
C++ Code Blocks и Boost Не подскажете как правильно подключить буст к проекту в Code Blocks? Собрал Boost 1.54, указал путь к папке с библиотеками в свойствах проекта во вкладке Search directories -> Compiler C:\Library\boost_mingw и Search directories -> Linker C:\Library\boost_mingw\libs. Но при компиляции вылазят сообщения: ||=== Build: Release in newboost (compiler: GNU GCC Compiler) ===|... https://www.cyberforum.ru/ cpp-networks/ thread1706642.html C++ Функция getaddrinfo was not declared https://www.cyberforum.ru/ cpp-networks/ thread1705873.html
В библиотеке winsock2 есть функция getaddrinfo , когда я начинаю набирать имя этой функции, выскакивает подсказка с этой функцией, то есть компилятор видит что есть такая функция, но когда я ее уже полностью набрал и заполнил аргументы и поставил точку с запятой, пишет ошибку getaddrinfo was not declared in this cope . То есть как бы компилятор видит эту функцию и одновременно не видит, что это...
Разработка ПО для защиты информации в локальной сети малого предприятия C++
Друзья! Код я сам напишу. Мне только непонятно- делать-то чего? Ну есть малое предприятие с четырьмя машинами. Как может злоумышленник управляя одним компьютером, украсть что-нибудь с другого компьютера? Он, по-моему только пропинговать его и может. Это что, брешь в защите информации что ли, если один узел локальной сети пингует другой узел в этой же сети? Нет. Можно изголиться, (не знаю,...
C++ Сырые сокеты: написание промежуточного сервера, через которого подключены клиенты и сервера клиентов
81 / 25 / 19
Регистрация: 27.10.2014
Сообщений: 420
0

Undefined reference to CLSID_Wbem Administrative Locator - C++ - Ответ 9039049

18.04.2016, 22:03. Показов 1470. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Недавно создавал топик о том как узнать главный шлюз кросплатформерным способом. Вот нашел такой код:
Кликните здесь для просмотра всего текста
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#ifdef Q_OS_WIN
#include <iostream>
using namespace std;
#include <wbemidl.h>
#include <comdef.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "wbemuuid.lib")
#else
#define BUFSIZE 8192
#include <arpa/inet.h>
#include <net/if.h>
#include <sys/socket.h>
#include <linux/rtnetlink.h>
#include <unistd.h>
 
struct route_info {
  in_addr dstAddr;
  in_addr srcAddr;
  in_addr gateWay;
  char ifName[IF_NAMESIZE];
};
 
int readNlSock(int sockFd, char *bufPtr, unsigned int seqNum, int pId) {
  struct nlmsghdr *nlHdr;
  int readLen = 0, msgLen = 0;
  do {
    if ((readLen = recv(sockFd, bufPtr, BUFSIZE - msgLen, 0)) < 0) {
      perror("SOCK READ: ");
      return -1;
    }
    nlHdr = (struct nlmsghdr *)bufPtr;
    if ((NLMSG_OK(nlHdr, readLen) == 0) || (nlHdr->nlmsg_type == NLMSG_ERROR)) {
      perror("Error in received packet");
      return -1;
    }
    if (nlHdr->nlmsg_type == NLMSG_DONE)
      break;
 
    bufPtr += readLen;
    msgLen += readLen;
 
    if ((nlHdr->nlmsg_flags & NLM_F_MULTI) == 0)
      break;
 
  } while ((nlHdr->nlmsg_seq != seqNum) || (nlHdr->nlmsg_pid != (unsigned)pId));
  return msgLen;
}
 
void parseRoutes(struct nlmsghdr *nlHdr, struct route_info *rtInfo) {
  struct rtmsg *rtMsg = (struct rtmsg *)NLMSG_DATA(nlHdr);
 
  if ((rtMsg->rtm_family != AF_INET) || (rtMsg->rtm_table != RT_TABLE_MAIN))
    return;
 
  struct rtattr *rtAttr = (struct rtattr *)RTM_RTA(rtMsg);
  int rtLen = RTM_PAYLOAD(nlHdr);
  for (; RTA_OK(rtAttr, rtLen); rtAttr = RTA_NEXT(rtAttr, rtLen)) {
    switch (rtAttr->rta_type) {
      case RTA_OIF:
        if_indextoname(*(int *)RTA_DATA(rtAttr), rtInfo->ifName);
        break;
      case RTA_GATEWAY:
        rtInfo->gateWay = *(in_addr *)RTA_DATA(rtAttr);
        break;
      case RTA_PREFSRC:
        rtInfo->srcAddr = *(in_addr *)RTA_DATA(rtAttr);
        break;
      case RTA_DST:
        rtInfo->dstAddr = *(in_addr *)RTA_DATA(rtAttr);
        break;
    }
  }
}
#endif
 
class NetworkHelper {
public:
  static QString DefaultGateway() {
    QString ret;
#ifdef Q_OS_WIN
    CoInitialize(NULL);
    if (CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_PKT, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, 0) != S_OK)
      return ret;
 
    IWbemLocator *pLoc = NULL;
    if (CoCreateInstance(CLSID_WbemAdministrativeLocator, NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_IUnknown, (void **)&pLoc) != S_OK)
      return ret;
 
    IWbemServices *pSvc = NULL;
    if (pLoc->ConnectServer(L"root\\cimv2", NULL, NULL, NULL, 0, NULL, NULL, &pSvc) != S_OK)
      return ret;
 
    IEnumWbemClassObject *pEnumerator = NULL;
    HRESULT hr = pSvc->ExecQuery(L"WQL", L"SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'", WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator);
    if (FAILED(hr)) {
      pSvc->Release();
      pLoc->Release();
      CoUninitialize();
      return ret;
    }
 
    IWbemClassObject *pclsObj = NULL;
    while (pEnumerator && ret.isEmpty()) {
      _variant_t vaDefaultIPGateway;
      ULONG uReturn;
      hr = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn);
      if (!uReturn)
        break;
 
      hr = pclsObj->Get(L"DefaultIPGateway", 0, &vaDefaultIPGateway, NULL, NULL);
      if (hr == WBEM_S_NO_ERROR && vaDefaultIPGateway.vt != VT_NULL) {
        LONG lLow = 0;
        LONG lUp = 0;
        ::SafeArrayGetLBound(vaDefaultIPGateway.parray, 1, &lLow);
        ::SafeArrayGetUBound(vaDefaultIPGateway.parray, 1, &lUp);
        for (LONG i = lLow; i <= lUp; i++) {
          BSTR bsDefaultIPGateway;
          if (::SafeArrayGetElement(vaDefaultIPGateway.parray, &i, &bsDefaultIPGateway) == S_OK) {
            ret = QString::fromUtf16(reinterpret_cast<const ushort *>(bsDefaultIPGateway));
            ::SysFreeString(bsDefaultIPGateway);
            break;
          }
        }
      }
      VariantClear(&vaDefaultIPGateway);
    }
 
    if (pclsObj)
      pclsObj->Release();
    if (pEnumerator)
      pEnumerator->Release();
    if (pSvc)
      pSvc->Release();
    if (pLoc)
      pLoc->Release();
    CoUninitialize();
#else
    int sock, msgSeq = 0;
    if ((sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE)) < 0) {
      perror("Socket Creation: ");
      return ret;
    }
 
    char msgBuf[BUFSIZE];
    memset(msgBuf, 0, BUFSIZE);
    struct nlmsghdr *nlMsg = (struct nlmsghdr *)msgBuf;
 
    nlMsg->nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
    nlMsg->nlmsg_type = RTM_GETROUTE;
 
    nlMsg->nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST;
    nlMsg->nlmsg_seq = msgSeq++;
    nlMsg->nlmsg_pid = getpid();
 
    if (send(sock, nlMsg, nlMsg->nlmsg_len, 0) < 0)
      return ret;
 
    int len;
    if ((len = readNlSock(sock, msgBuf, msgSeq, getpid())) < 0)
      return ret;
 
    struct route_info *rtInfo = (struct route_info *)malloc(sizeof(struct route_info));
 
    for (; NLMSG_OK(nlMsg, len); nlMsg = NLMSG_NEXT(nlMsg, len)) {
      memset(rtInfo, 0, sizeof(struct route_info));
      parseRoutes(nlMsg, rtInfo);
 
      if (strstr((char *)inet_ntoa(rtInfo->dstAddr), "0.0.0.0") && !strstr((char *)inet_ntoa(rtInfo->gateWay), "0.0.0.0")) {
        char buf[64];
        inet_ntop(AF_INET, &rtInfo->gateWay, buf, sizeof(buf));
        ret = QString(buf);
        break;
      }
    }
 
    free(rtInfo);
    close(sock);
#endif
    return ret;
  }
};


После борьбы с ошибками осталась только одна:
ошибка: undefined reference to `CLSID_WbemAdministrativeLocator'
вот тут:
C++
1
2
3
IWbemLocator *pLoc = NULL;
    if (CoCreateInstance(CLSID_WbemAdministrativeLocator, NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_IUnknown, (void **)&pLoc) != S_OK)
      return ret;
без этих строк по понятным причинам работать не будет. Либы нужные подключены, чего еще нехватает?

помогите запустить этот код

Добавлено через 11 минут
но при этом можно проверить что
CLSID_WbemAdministrativeLocator есть в #include <Wbemcli.h> который подключен...ВТФ!?

Вернуться к обсуждению:
Undefined reference to CLSID_Wbem Administrative Locator C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2016, 22:03
Готовые ответы и решения:

Странная ошибка: [Linker error] undefined reference to `__dyn_tls_init_callback' [Linker error] undefined reference to ld returned 1 exit status
Здравствуйте. Вот недавно начал изучать книгу &quot;С++ для чайников&quot; Стефан Р. Девис 4-е издание. И...

Undefined reference to
Matrix.h #pragma once #include &lt;iostream&gt; template &lt;typename T&gt; class Matrix { private: int...

Undefined reference to
#include &lt;TXLib.h&gt; #include &lt;iostream&gt; using namespace std; void...

Undefined reference to
Как это разрулить? someclass.h namespace SP { Class SomeClass { SomeClass(){}; ...

0
18.04.2016, 22:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2016, 22:03
Помогаю со студенческими работами здесь

undefined reference...
Добрый день.На C перешел совсем недавно,поэтому могу не знать всех тонкостей.Подскажите,в какую...

G++ undefined reference
Доброго времени суток, получаю вот такую ошибку: Хотя по коду все верно: data.h #pragma once...

Undefined reference to
Много уже тем создано по даннму вопросу, но решения так и не нашел.. Есть конечно догадки, но как...

Undefined reference to
Помогите, пожалуйста. Нужно было написать программу с использованием шаблона. Появляется ошибка...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru