26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
1

Получить Ip по доменнаму имени

22.12.2015, 21:05. Показов 651. Ответов 2
Метки нет (Все метки)

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
 std::string HostName;
 
DWORD domainIP()
{
    WSADATA wdata;
   struct hostent *remoteHost;
    int result = WSAStartup(MAKEWORD(2,2), &wdata);
    remoteHost = gethostbyname("yandex.ru");
    HostName = inet_ntoa(*( struct in_addr*)remoteHost->h_addr_list[0]);
    
            MessageBoxA(NULL,(HostName.c_str()), "Info",MB_OK);// тут выдает ip
        
    return 0;
}
 
int __stdcall connect(SOCKET s, const struct sockaddr *name, int namelen)
{
 
    struct sockaddr_in *domen_in = (struct sockaddr_in*) name;
    if (domen_in->sin_port == htons(8888))
    {
         domainIP();
        domen_in->sin_port = htons(8888);
        domen_in->sin_addr.S_un.S_addr = (*(DWORD*)HostName.c_str()); // тут кажется касяк . как правильно сделать ?
    
    }
    
    return true_connect(s, name, namelen);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2015, 21:05
Ответы с готовыми решениями:

Получить ip по доменному имени
Доброе время суток ! подскажите как получить ip по доменному имени!! вот пробую DWORD...

Получить класс по строковому имени
Здравствуйте, перелопатил кучу информации, а ответ не нашёл, как получить класс по его строковому...

Получить объект класса по имени
Получается какая проблема, работаю с loader, который подключает файлы и объявляет классы. К...

Получить расширение из имени файла
не нашел такой функции. она вообще существует ? ExtractFilePath - для каталога ExtractFileName -...

2
Эксперт С++
3071 / 1409 / 425
Регистрация: 19.01.2009
Сообщений: 3,879
22.12.2015, 22:43 2
Faraon, проще всего в строке 24 вместо каста использовать функцию inet_addr(HostName.c_str()), т.к. у вас в HostName - строковое представление ип адреса. Но имхо лучше переименовать и переписать функцию domainIP() передавать в нее указателль domen_in и в нутри нее уже модифицировать domen_in->sin_addr.S_un.S_addr

А не малварь ли вы пишите?

Добавлено через 7 минут
Faraon, и кстати, WSAStartup() достаточно вызвать единожды, например, там где происходит инициализация вашего приложения, либо модуля.
1
26 / 25 / 9
Регистрация: 17.09.2011
Сообщений: 143
22.12.2015, 22:49  [ТС] 3
Спасибо большое! нет не малварь. protection от ботав (клиент-сервер)
0
22.12.2015, 22:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2015, 22:49
Помогаю со студенческими работами здесь

Как получить таблицу по имени?
Добрый день! Вопрос наверняка глупый, но у меня вызвал затруднение. Получить записи таблицы Info...

Получить данные по имени (рефлексия+БД)
Здравствуйте, задача такая: есть некоторые таблицы в базе данных, у таблиц есть колонка, нужно...

.Net 2 получить переменную по имени
class MyClass { public MyClass(string name, int value) {} int i1; int i37; ...

Получить элемент мапы по имени
Всем доброго дня! Такая вот проблема - вроде делаю простую штуку, но простая штука не делается....


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

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

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