Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Собственный IP, Как узнать ? 
:(
    Опции темы
Sheff
Дата 4.9.2002, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

Репутация: 3
Всего: 3



Как мне узнать собственный IP адрес ?


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
Sergei
Дата 4.9.2002, 19:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Все гениальное - просто. Используешь функцию GetAdaptersInfo() и все дела, или берешь по адресу в реестре: HKEY_LOCAL_MACHINESYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\тут имя интерфейса. Будут проблемы, могу выслать кусок кода.
Там в реестре будут все IP поднятые на интерфейсе, но первый будет основным.
  Вверх
Sheff
Дата 4.9.2002, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

Репутация: 3
Всего: 3



Видишь ли, для того чтобы юзать GetAdaptersInfo() нужна библиотека Iphlpapi.dll, а у меня такой нет :(


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
Sergei
  Дата 4.9.2002, 23:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Если я тебя правильно понял, то тебе не хватает Iphlpapi.h и Iphlpapi.lib файлов, они входят в SDK, если хочешь то могу переслать их. А что касается DLL, то она лежит где и положено WINNT\System32. Ну а если и это тебя не устраивает, то бери в реестре напрямую.
  Вверх
Rimas
Дата 5.9.2002, 15:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сначала через gethostname узнаем имя своей машины, а потом с помощью gethostbyname узнаем свой айпи
  Вверх
Sergei
  Дата 5.9.2002, 20:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Функция gethostname() конечно хороша, да вот только если забыть проставить  имя своей машины или использовать прогу на компе, где оно не указано, то результат будет непредсказуемым, да и как быть если на компе несколько адаптеров и на каждом поднято несколько IP?  :rolleyes
  Вверх
Sheff
Дата 6.9.2002, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 503
Регистрация: 25.3.2002
Где: Зеленоград

Репутация: 3
Всего: 3



Насчёт IPhlpAPI.dll:
Вообще то у меня Win98, а не NT и .h и .lib'а у меня нет :(
Если не трудно, смыль на [email protected]


--------------------
--------------------------
Шеф всегда прав :)
PM MAIL WWW ICQ   Вверх
HexoGenus
Дата 17.11.2002, 03:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(Guest @ 05.9.2002, 13:08)
Функция gethostname() конечно хороша, да вот только если забыть проставить  имя своей машины или использовать прогу на компе, где оно не указано, то результат будет непредсказуемым, да и как быть если на компе несколько адаптеров и на каждом поднято несколько IP?  :rolleyes

На каждом адаптере несколько IP ???
Речь про локалку?  :huh
Не знал что такое вообще возможно :D
а вообще информация про IP каждого адаптера лежит в реестре
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0001
и т.д.
Или я не прав?  :sarcasm
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
HexoGenus
  Дата 17.11.2002, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(Sheff @ 03.9.2002, 19:07)
Как мне узнать собственный IP адрес ?

Покопался по своим залежам и нашел еще и такой способ:

Сообщение оставил: LDan
Вопрос: Как на Builder-e получить локальные IP адреса и их маски подсети не только 1-й сетевой корты но и всех остальных????????

Код

void MachineIP(char *result)
{
WSADATA WSAData;

WSAStartup(MAKEWORD(1,1), &WSAData);

char dot[6];
int iResult;
int i = 0;
u_long *ppIpNO;
u_long *pIpNO;
HOSTENT FAR *lphostent;
u_long ipHO;
unsigned char binIp[4];
int iterations = 0;


char szHostName[100];
*result = 0;

iResult = gethostname(szHostName, sizeof(szHostName));
// printf("%d %s",iResult,szHostName);
if ((iResult != 0) || (lstrcmp(szHostName, "")==0))
return;


lphostent = gethostbyname(szHostName);
if (lphostent == NULL)
return;

do
{
iterations++;
ppIpNO = (u_long *)lphostent->h_addr_list;
if (ppIpNO+i == NULL)
return;
pIpNO = ((u_long *)*(ppIpNO+i));
if (pIpNO == NULL)
return;


ipHO = ntohl(*pIpNO);

binIp[0] = (BYTE)((ipHO & 0xff000000) >> 24);
itoa(binIp[0], dot, 10);
strcat(result,dot);
binIp[1] = (BYTE)((ipHO & 0x00ff0000) >> 16);
itoa(binIp[1], dot, 10);
strcat(result, "."); strcat(result, dot);
binIp[2] = (BYTE)((ipHO & 0x0000ff00) >> 8);
itoa(binIp[2], dot, 10);
strcat(result, "."); strcat(result, dot);
binIp[3] = (BYTE)(ipHO & 0x000000ff);
itoa(binIp[3], dot, 10);
strcat(result,"."); strcat(result, dot);
strcat(result,"rn");
i++;
} while ((pIpNO != NULL) && (iterations < 6));
WSACleanup();
PostQuitMessage(0);
return;
}




Я сам не проверял...  :dg
Может заработает  :D
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1599 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.