Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Получение всех ip-адресов компа на delphi. |

29.10.2009, 11:03
|
|
Познающий
Регистрация: 19.12.2008
Сообщений: 78
Провел на форуме: 184907
Репутация:
13
|
|
Получение всех ip-адресов компа на delphi.
Как можно получить все ip адреса компа (а вдруг у юзера несколько (больше одного) сетевых адаптеров)??
ЗЫ Инди не подойдет - много весит!
|
|
|

29.10.2009, 11:22
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Регулярками выдрать из ipconfig'а...
ЗЫ Инди не подойдет - много весит!
о_О, а инди тут при чем?
|
|
|

29.10.2009, 16:25
|
|
Познающий
Регистрация: 19.12.2008
Сообщений: 78
Провел на форуме: 184907
Репутация:
13
|
|
Сообщение от mailbrush
Регулярками выдрать из ipconfig'а...
о_О, а инди тут при чем?
Там есть IdIpAddrMon.
ЗЫ Я от него и хочу избввится - сейчас он у меня используется.
|
|
|

29.10.2009, 16:27
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Тема не в том разделе создана
|
|
|

29.10.2009, 16:54
|
|
Познающий
Регистрация: 19.12.2008
Сообщений: 78
Провел на форуме: 184907
Репутация:
13
|
|
Если это тонкий намек на то, что мне в [Delphi]/[Pascal] Задай вопрос, получи ответ, то уж извеняйте!! , а если нет, то я непонял....
И всё-же по теме??
Пытался код из индюка вытащить - получилось что-то унылое... и вылетающее по причине Access violation
Последний раз редактировалось Proger10; 29.10.2009 в 16:56..
|
|
|

29.10.2009, 17:14
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
можно через сырые сокеты делать это типа так:
Код:
var
n_addr : integer; // Хранит кол-во найденный интерфейсов
n, a : integer; // Дополнительные переменные
raw_socket:tsocket; // Переменная для создания сокета
WSData:tWSAData; // Переменная для инициализации библиотеки сокетов
llist:packed record
iAddressCount : Integer;
Address : Array [0..10] of SOCKET_ADDRESS;
end;
begin
// инициализация библиотеки сокетов
if WSAStartup($202, WSData)<>0 then Errors('[-] WSAStartup'+#13#10) else Oks('[+] WSAStartup'+#13#10);
// создание сокета
raw_socket:=socket(AF_INET, SOCK_RAW, IPPROTO_IP);
// проверка на ошибки
if raw_socket=INVALID_SOCKET then Errors('[-] Create RAW socket'+#13#10) else Oks('[+] Create RAW socket'+#13#10);
// получаем все интерфейсы? что есть на компьютере.
if WSAIoctl(raw_socket, SIO_ADDRESS_LIST_QUERY, nil, 0,@llist, 1024, @n, nil, nil)=SOCKET_ERROR then
Errors('[-] WSAIoctl'+#13#10) else Oks('[+] WSAIoctl'+#13#10);
n_addr:=llist.iAddressCount; // получение количества интерфейсов
// если кол-во интерфейсов=0, то ошибка
if n_addr=0 then Errors('[-] Interface count: 0'+#13#10) else Oks('[+] Interface count: '+inttostr(n_addr)+#13#10);
// вывод IP-адресов всех найденных интерфейсов
for a:=0 to n_addr-1 do begin
s:=inet_ntoa(llist.Address[a].lpSockaddr.sin_addr);
Oks(' Interface fount: '+s+#13#10);
end;
Последний раз редактировалось slesh; 29.10.2009 в 17:17..
|
|
|

29.10.2009, 17:25
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
P.S. в 5005 статей по Delphi есть статейка
Получение IP-адреса и маски для всех сетевых интерфейсов
|
|
|

29.10.2009, 17:46
|
|
Постоянный
Регистрация: 07.03.2009
Сообщений: 357
Провел на форуме: 1284900
Репутация:
399
|
|
Не проще ли в CMD написать ipconfig /all а потом отпарсить результат...
|
|
|

29.10.2009, 18:26
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
2 Gray_Wolf нет не проще. Это самый быстрый способ. Да и не очень то и большой. А вот запустить программу, получить её вывод и отпарсить - это однако боле напряжнее на систему. Тыже чтобы сложит в программа 5+6 не запускаеш калькулятор, не вставляеш туда данные и не эмулируеш нажатия на кнопку Enter
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|