Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
5 / 5 / 0
Регистрация: 10.02.2012
Сообщений: 16
1

Программное определение АйПи-адреса

26.07.2012, 19:06. Показов 3211. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток всем...
Вопрос в следующем: довольно часто приходится задавать своим пользователям вопрос "Какой Вашь IP-адрес..." Достало объяснять, как открыть консоль, как набрать команду ipconfig и где там этот самый адрес... Т.к. все станции в сети имеют динамические адреса, то эта процедура повторяется постоянно. Поэтому сделал программу, которая при запуске скрыто выполняет эту самую команду (ipconfig в смысле), записывает информацию в текстовый файл, потом этот файл считывается и запоминается полученный адрес. После запуска программа падает в трэй и когда юзер наводит мышь на значек программы в качастве хинта выскакивает этот самый адрес. Так вот, вопрос в том как определить адрес без такого длинного обходного пути?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2012, 19:06
Ответы с готовыми решениями:

Определение IP-адреса
Прога определяет IP-адрес компа. Но если на компе стоит 2 сетевых и у компа 2 айпишника, то...

Определение mac-адреса сетевой карты
Приветствую. Ребят, дайте пожалуйста действующий способ определения mac-адреса сетевой карты на...

Нахождение айпи адреса узла подсети по айпи адресу сети
Условие айпи адрес сети 130.0.0.0 Найти айпи адрес 100 подсети 507 узла+маску подсети. 1)...

Анонимайзер, но без смены айпи адреса
Ребят, выручайте. В общем есть сайт, на который не хочет пускать меня через прямую ссылку, я уже и...

9
143 / 122 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
26.07.2012, 20:14 2
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
#include <winsock2.h>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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);
5
0 / 0 / 0
Регистрация: 06.08.2012
Сообщений: 5
06.08.2012, 18:30 3
Как вариант мжно программно скачать исходный код страницы сайта определяющего ip и выщемить оттуда ip
0
LK
Заблокирован
06.08.2012, 19:48 4
Лучший ответ Сообщение было отмечено как решение

Решение

Евгений93, лучшего совета решить вопрос через одно место я давно не слышал .
3
5 / 5 / 0
Регистрация: 10.02.2012
Сообщений: 16
08.08.2012, 18:35  [ТС] 5
Цитата Сообщение от LK Посмотреть сообщение
Евгений93, лучшего совета решить вопрос через одно место я давно не слышал .
Улыбнуло
0
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
08.08.2012, 18:49 6
Это у него (Евгений93) был ответ на вопрос: "как узнать внешний IP?"
Просто он невнимательно прочитал сообщение автора темы.
0
LK
Заблокирован
08.08.2012, 23:02 7
kzru_hunter, та я понял, но вариант все равно классный
0
46 / 43 / 1
Регистрация: 02.07.2007
Сообщений: 2,446
15.10.2012, 11:17 8
Почему функция GetHostByName() определяя IP моего компа (с него, собственно, и запущена) вернула 192.168.140.214, а не 192.168.35.145 ?
Миниатюры
Программное определение АйПи-адреса  
0
2 / 2 / 1
Регистрация: 28.11.2011
Сообщений: 49
15.10.2012, 11:34 9
Выдаст внешний IP Адрес если вы подключены к интернету
Если нет то локальный
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
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1, 0);
int err = WSAStartup(wVersionRequested, &wsaData);
if(err == 0)
{
char hn[1024];
struct hostent *adr;
if(gethostname((char *)&hn, 1024))
{
int err = WSAGetLastError();
Beep();
};
adr = gethostbyname(hn);
if(adr)
{
  char *LocalIp = new char[15];
  sprintf(LocalIp,"%d.%d.%d.%d",
  (unsigned char)adr->h_addr_list[0][0],
  (unsigned char)adr->h_addr_list[0][1],
  (unsigned char)adr->h_addr_list[0][2],
  (unsigned char)adr->h_addr_list[0][3]);
  Label11->Caption=LocalIp; //Выводим IP адрес
 
    }
  }
}
1
46 / 43 / 1
Регистрация: 02.07.2007
Сообщений: 2,446
15.10.2012, 12:51 10
А если мне нужен локальный вне зависимости от того,
вышел я в инет или нет. То как тогда ?..
0
15.10.2012, 12:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2012, 12:51
Помогаю со студенческими работами здесь

динамические айпи адреса сеть билайн
Добрый день скажите пожалуйста знающие люди, когда человек заходит с телефона через 3G то на...

Google - с вашего айпи адреса подозрительные запросы
Здравствуйте! Вчера искал картинки через &quot;Найти это изображение в Google&quot;, было все хорошо, пока в...

Задать айпи адреса сетевым интерфейсам маршрутизаторов
добрый день как можно задать айпи адреса сетевым интерфейсам маршрутизаторов и каким проводом их...

Преобразование 32-битного целочисленного представления айпи-адреса в строковое
Источник: http://company.yandex.ru/job/vacancies/dev_desktop.xml (3-ий вопрос). Моё решение на...


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

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