Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как определить локальный IP адрес? / 25 сообщений из 26, страница 1 из 2
07.09.2005, 12:17
    #33255952
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Как определить локальный IP адрес средствами С++ Builder?
...
Рейтинг: 0 / 0
07.09.2005, 12:41
    #33256086
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
string getLocalIP()
{
return "127.0.0.1";
}

:-)

вообще можно получить GetHostName
затем сделать
gethostbyaddr
и получить адрес.
но на машине может больше 1ого ip адреса, тут не знаю как быть
...
Рейтинг: 0 / 0
07.09.2005, 12:44
    #33256097
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
...
Рейтинг: 0 / 0
07.09.2005, 14:22
    #33256466
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
alex_k
но на машине может больше 1ого ip адреса, тут не знаю как быть


О кстате , точна ...
...
Рейтинг: 0 / 0
07.09.2005, 15:40
    #33256753
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Должен все перебрать

Код: plaintext
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.
#include <windows.h>
#include <stdio.h>
#include <string>
#include <iostream.h>

int doit(int, char **)
{
    char ac[ 80 ];
    if (gethostname(ac, sizeof(ac)) == SOCKET_ERROR) {
        cerr << "Error " << WSAGetLastError() <<
                " when getting local host name." << endl;
        return  1 ;
    }
    cout << "Host name is " << ac << "." << endl;

    struct hostent *phe = gethostbyname(ac);
    if (phe ==  0 ) {
        cerr << "Yow! Bad host lookup." << endl;
        return  1 ;
    }

    for (int i =  0 ; phe->h_addr_list[i] !=  0 ; ++i) {
        struct in_addr addr;
        memcpy(&addr, phe->h_addr_list[i], sizeof(struct in_addr));
        cout << "Address " << i << ": " << inet_ntoa(addr) << endl;
    }
    
    return  0 ;
}

int main(int argc, char *argv[])
{
    WSAData wsaData;
    if (WSAStartup(MAKEWORD( 1 ,  1 ), &wsaData) !=  0 ) {
        return  255 ;
    }

    int retval = doit(argc, argv);

    WSACleanup();

    return retval;
}
...
Рейтинг: 0 / 0
07.09.2005, 16:01
    #33256826
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Бу Га Га
Молчал, молчал , но больше не буду
...
Рейтинг: 0 / 0
07.09.2005, 22:50
    #33257512
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Gluk (Kazan)Бу Га Га
Молчал, молчал , но больше не буду

совсем согласен кроме этого утверждения :

"Не забудьте, что функция GetIpAddress всегда будет возвращать внутренний адрес (127.0.0.1). Он всегда существует"
...
Рейтинг: 0 / 0
08.09.2005, 08:28
    #33257695
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
На Windows насколько мне известно всегда
...
Рейтинг: 0 / 0
08.09.2005, 11:31
    #33258154
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Много поведали, спасибо,
я же выкрутился вот так:


// #include <winsock2.h>

AnsiString out = "WinSock ERR";
WSADATA wsaData;
if (!WSAStartup(WINSOCK_VERSION, &wsaData))
{
char chInfo[64];
if(!gethostname(chInfo, sizeof(chInfo)))
{
hostent *sh;
sh=gethostbyname((char*)&chInfo);
if(sh!=NULL)
{
int nAdapter = 0;
while (sh->h_addr_list[nAdapter])
{
struct sockaddr_in adr;
memcpy(&adr.sin_addr, sh->h_addr_list[nAdapter], sh->h_length);
out = inet_ntoa(adr.sin_addr);
nAdapter++;
}
}
}
}
WSACleanup();
ShowMessage(out);
...
Рейтинг: 0 / 0
08.09.2005, 21:41
    #33259913
Егор3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
VISUAL C++ 6.0

автор#include <winsock2.h>

// AnsiString out = "WinSock ERR";
CString out = "WinSock ERR";
WSADATA wsaData;
if (!WSAStartup(WINSOCK_VERSION, &wsaData))
{
char chInfo[64];
if(!gethostname(chInfo, sizeof(chInfo)))
{
hostent *sh;
sh=gethostbyname((char*)&chInfo);
if(sh!=NULL)
{
int nAdapter = 0;
while (sh->h_addr_list[nAdapter])
{
struct sockaddr_in adr;
memcpy(&adr.sin_addr, sh->h_addr_list[nAdapter], sh->h_length);
out = inet_ntoa(adr.sin_addr);
nAdapter++;
}
}
}
}
WSACleanup();
//-ShowMessage(out);
MessageBox(out);

Linking...
HelloView.obj : error LNK2001: unresolved external symbol __imp__WSACleanup@0
HelloView
.obj : error LNK2001: unresolved external symbol __imp__inet_ntoa@4
HelloView
.obj : error LNK2001: unresolved external symbol __imp__gethostbyname@4
HelloView
.obj : error LNK2001: unresolved external symbol __imp__gethostname@8
HelloView
.obj : error LNK2001: unresolved external symbol __imp__WSAStartup@8
Debug
/Hello.exe : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.

Hello.exe - 6 error(s)
...
Рейтинг: 0 / 0
08.09.2005, 22:25
    #33259946
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
нужно добавить wsock32.lib в Object/library modules
...
Рейтинг: 0 / 0
09.09.2005, 08:42
    #33260197
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
#pragma comment(lib,"WS2_32.lib")
...
Рейтинг: 0 / 0
09.09.2005, 12:50
    #33261031
Егор3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
СПАСИБО ОБОИМ
Gluk (Kazan)
Землекоп
Код: plaintext
1.
ДОСТАТОЧНО НИЖЕСЛЕДУЮЩЕЙ СТРОКИ
#pragma comment(lib,"WS2_32.lib")
...
Рейтинг: 0 / 0
09.09.2005, 13:01
    #33261086
Егор3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Определили IP cвоего компьютера,
ИНТЕРЕМНО, как всех в СЕТИ моей фирмы ?

СПАСИБО
...
Рейтинг: 0 / 0
10.09.2005, 00:00
    #33262347
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Gluk (Kazan)На Windows насколько мне известно всегда

при отсутствии сетевых протоколов тоже ?
...
Рейтинг: 0 / 0
12.09.2005, 10:29
    #33263391
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
авторпри отсутствии сетевых протоколов тоже ?

Клиника не рассматривается
...
Рейтинг: 0 / 0
12.09.2005, 10:36
    #33263413
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
В Linux надо прописывать localhost явно
в Windows не надо :)
...
Рейтинг: 0 / 0
30.09.2005, 16:43
    #33299076
мда
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Gluk (Kazan)В Linux надо прописывать localhost явно
в Windows не надо :)

Если прописать локалхосту другой адрес то 127.0.01 не будет что и требовалось доказать.
...
Рейтинг: 0 / 0
30.09.2005, 16:45
    #33299083
ага
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
философы мля )
...
Рейтинг: 0 / 0
30.09.2005, 16:52
    #33299103
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
мда Gluk (Kazan)В Linux надо прописывать localhost явно
в Windows не надо :)

Если прописать локалхосту другой адрес то 127.0.01 не будет что и требовалось доказать.

У Вас хромает логика :( На обе ноги. Я что-то говорил про 127.0.0.1 ???
...
Рейтинг: 0 / 0
30.09.2005, 19:46
    #33299444
мда
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Gluk (Kazan) мда Gluk (Kazan)В Linux надо прописывать localhost явно
в Windows не надо :)

Если прописать локалхосту другой адрес то 127.0.01 не будет что и требовалось доказать.

У Вас хромает логика :( На обе ноги. Я что-то говорил про 127.0.0.1 ???

Lepsik тут аднака нацарапал
"Не забудьте, что функция GetIpAddress всегда будет возвращать внутренний адрес (127.0.0.1). Он всегда существует"
на что Gluk (Kazan) пачимута вазразилНа Windows насколько мне известно всегда

Унимание вапрос: у каго эта тут храмаит логика?
...
Рейтинг: 0 / 0
30.09.2005, 20:31
    #33299484
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Не верь им всем. Локальный адрес только один и он всегда фиксированный,
127.0.0.1 .
...
Рейтинг: 0 / 0
30.09.2005, 20:58
    #33299496
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
MasterZivНе верь им всем. Локальный адрес только один и он всегда фиксированный,
127.0.0.1 .

я тоже это в какойто книжке читал
...
Рейтинг: 0 / 0
01.10.2005, 13:27
    #33299751
Gluk (Kazan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
мдаУнимание вапрос: у каго эта тут храмаит логика?

Подпишусь под каждым СВОИМ словом.
Что Вас смущает ?
...
Рейтинг: 0 / 0
03.10.2005, 10:24
    #33300645
мда
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить локальный IP адрес?
Gluk (Kazan) мдаУнимание вапрос: у каго эта тут храмаит логика?

Подпишусь под каждым СВОИМ словом.
Что Вас смущает ?

Паясняю исчо раз и очинь падробна:
Я так жы как и Lepsik решительна не сагласен с этим:
"Не забудьте, что функция GetIpAddress ВСЕГДА будет возвращать внутренний адрес (127.0.0.1)."
И с этим:
"Он ВСЕГДА СУЩЕСТВУЕТ".

Терь дошло?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как определить локальный IP адрес? / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]