Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];

Вниз

Сетевые девайсы и их адреса...   Найти похожие ветки 

 
Yaro   (2003-12-23 04:54) [0]

Ребята, какой функцией можно узнать о доступных в системе IP-адресах и что они собой представляют? На текущий момент делаю следующим образом:

...........................................

program Project1;

{$APPTYPE CONSOLE}

uses
WinSock2, Windows;

type
TPArr = array of Pointer;

var
wsadata: TWSAData; // Инициализация WinSock.
s: TSocket; // Хэндл сокета.
name: PChar; // Имя энтого компа (хоста).
phe: PHostEnt; // информация об этом компе (хосте).
sa: TSockAddrIn; // Адрес хоста
i: integer;
Fin: boolean = False;

begin
GetMem(name, 128);

WSAStartup(MAKEWORD(2,2), wsadata);
gethostname(name, 128); // Получаем имя этого хоста
phe := gethostbyname(name); //получаем информацию об этом хосте (фигню какую-то, а не информацию)
i := 0;
repeat
s := socket(AF_INET, SOCK_RAW, IPPROTO_IP);
ZeroMemory(@sa, sizeof(TSockAddrIn));
sa.sin_family := AF_INET;
try
sa.sin_addr.s_addr := PInAddr(TPArr(phe^.h_addr_list)[i])^.S_addr;
except
Fin := True;
end;
if not Fin then
if bind(s, @sa, 128) = 0
then Writeln("Bind #", i, " Ok: ", Inet_NToA(sa.sin_addr))
else Writeln("Bind #", i, " Error: ", WSAGetLastError);
closesocket(s);
inc(i);
until (Fin);
WSACleanup;
readln;
end.

.............................
Меня терзают смутные сомения: все это делается не таким образом, темболее, что я не получаю информацию, которая должна быть предоставлена пользователю: Имена EtherNet адаптеров и их адреса, количество и адреса текущих RAS соединений (а так же имена существующих но не активных RAS соединений).
В общем думаю я достаточно точно дал понять что мне необходимо.

Да и еще... Не скажете ли мне зачем мы делаем бинд, после создания сокета (нафиг он тогда вообще нужен?)? и еще ... можно ли производить несколько биндов в пределах одного сокета (тогда все понятно, но зачем это нужно?)?

Спасибо за внимание!


 
Verg   (2003-12-23 11:30) [1]

http://delphimaster.net/view/6-1071815293/

> , что я не получаю информацию, которая должна быть предоставлена
> пользователю
: Имена EtherNet адаптеров и их адреса, количество
> и адреса текущих RAS соединений (а так же имена существующих
> но не активных RAS соединений).


Где ты вычитал, что эта информация должна быть предоствалена при таких системных вызовах? RAS-то каким тут боком приклеилось у тебя?

Мухи, котлеты, кони, люди - все в одной куче....


> Не скажете ли мне зачем мы делаем бинд, после создания сокета
> (нафиг он тогда вообще нужен?)? и еще ...


Не знаю, кто такие мы... Для чего ты делаешь bind-closesocket я тоже не понял... Зачем тебе символьный сокет вообще, тоже непонятно.

Вообще,.... бред какой-то....



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-93857
xobbit
2004-02-16 02:52
2004.02.29
TTabSheet(Page control) в Рантайм


1-94021
i-s-v
2004-02-16 22:37
2004.02.29
Как сделать, чтобы при изменении размеров отрисовывалася рамка


8-94030
Agent[007]
2003-10-29 15:46
2004.02.29
OpenGL - перпендикуляр


1-93889
YurikGl
2004-02-14 14:48
2004.02.29
Границы таблицы в Rave


1-93846
Budy
2004-02-16 17:13
2004.02.29
Панелька из Paint а





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский