Форум программистов, компьютерный форум CyberForum.ru

Список IP-адресов в локальной сети - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Anthon
Сообщений: n/a
15.10.2007, 14:05     Список IP-адресов в локальной сети #1
Как, зная адрес и маску подсети, с помощью Windows API получить список IP всех хостов?

Пингование всех возможных адресов не годится.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2007, 14:05     Список IP-адресов в локальной сети
Посмотрите здесь:

С помощью какого кода можно запустить как либо файл по локальной сети, и так-же на своём компе C++
Сканирование локальной сети в заданном диапазоне IP C++
C++ Как можно написать клиент-серверное приложение работающее в локальной сети? Ну например на одном из компютеров стоит сервер а на остальных клиенты
C++ Какой функцией на Ц получить список IP-адресов на локальной машине?
Обмен данными через файлы по локальной сети C++
C++ Доступ к машине в локальной сети
C++ Поиск файлов в локальной сети
C++ Игры с возможностями мультиплеера по локальной сети

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ghost
Сообщений: n/a
16.10.2007, 11:39     Список IP-адресов в локальной сети #2
Ну, например, поспрошать DHCP Если он есть
lapitsky
Сообщений: n/a
03.01.2011, 14:45     Список IP-адресов в локальной сети #3
можно просто вычислить самому:

procedure GetAddressesRange(IPAddress: string; SubnetMask: string; var Ips: TStringList);

var Count: LongInt;
I:LongInt;
IP: LongInt;
tmpStr: string;
addr, mask: LongInt;
Str: string;
begin
tmpStr := ''
Str := '$'
if ipAddress[Length(ipAddress)] <> '.' then
ipAddress := ipAddress + '.'

if SubnetMask[Length(SubnetMask)] <> '.' then
SubnetMask := SubnetMask + '.'

for I:=1 to Length(ipAddress) do
begin
if ipAddress[i] <> '.' then
tmpStr := tmpStr + ipAddress[i]
else
begin
Str := Str + IntToHex(StrToInt(tmpStr),2);
tmpStr := ''
end;
end;
Addr := StrToInt(Str);

tmpStr := ''
Str := '$'

for I:=1 to Length(SubnetMask) do
begin
if SubnetMask[i] <> '.' then
tmpStr := tmpStr + SubnetMask[i]
else
begin
Str := Str + IntToHex(StrToInt(tmpStr),2);
tmpStr := ''
end;
end;
Mask := StrToInt(Str);

Ips := nil;
Ips := TstringList.Create;
Ips.Clear;

I:=0;
Count := LongInt($FFFFFFFF - mask);

for IP := (addr and mask) to ((addr and mask) + Count) do
begin
tmpStr := IntToStr(StrToInt('$' + copy(IntToHex(ip,2),1,2))) + '.'+
IntToStr(StrToInt('$' + copy(IntToHex(IP,2),3,2))) + '.'+
IntToStr(StrToInt('$' + copy(IntToHex(IP,2),5,2))) + '.'+
IntToStr(StrToInt('$' + copy(IntToHex(IP,2),7,2)));
Ips.Add(TmpStr);
Inc(I);
end;
end;
Yandex
Объявления
03.01.2011, 14:45     Список IP-адресов в локальной сети
Ответ Создать тему
Опции темы

Текущее время: 14:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru