Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
D-1973
5 / 5 / 0
Регистрация: 10.02.2012
Сообщений: 16
1

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

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

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

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

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

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

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

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

9
QWIPQ
142 / 121 / 14
Регистрация: 10.10.2011
Сообщений: 359
Записей в блоге: 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
Евгений93
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
D-1973
5 / 5 / 0
Регистрация: 10.02.2012
Сообщений: 16
08.08.2012, 18:35  [ТС] 5
Цитата Сообщение от LK Посмотреть сообщение
Евгений93, лучшего совета решить вопрос через одно место я давно не слышал .
Улыбнуло
0
kzru_hunter
1108 / 777 / 99
Регистрация: 01.02.2011
Сообщений: 1,779
Записей в блоге: 1
08.08.2012, 18:49 6
Это у него (Евгений93) был ответ на вопрос: "как узнать внешний IP?"
Просто он невнимательно прочитал сообщение автора темы.
0
LK
Заблокирован
08.08.2012, 23:02 7
kzru_hunter, та я понял, но вариант все равно классный
0
malor
38 / 35 / 1
Регистрация: 02.07.2007
Сообщений: 2,036
15.10.2012, 11:17 8
Почему функция GetHostByName() определяя IP моего компа (с него, собственно, и запущена) вернула 192.168.140.214, а не 192.168.35.145 ?
0
Миниатюры
Программное определение АйПи-адреса  
Zaglumilo
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
malor
38 / 35 / 1
Регистрация: 02.07.2007
Сообщений: 2,036
15.10.2012, 12:51 10
А если мне нужен локальный вне зависимости от того,
вышел я в инет или нет. То как тогда ?..
0
15.10.2012, 12:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2012, 12:51

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru