Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизСетевые настройки Найти похожие ветки
← →
To4kA (2006-08-30 21:59) [0]Люди добрые !!! Помогите плз... Надо в программе сделать объекты:
1) окно выбора сетевой карты
2) ввод ип адреса, для выбранной выше карты
3) кнопку вкл/выкл выбранную выше сетевую карту
Кто что знает расскажите плз незнающему...
← →
Сергей М. © (2006-08-31 09:25) [1]У сетевой карты нет "ип адреса".
IP-адрес (причем не обязательно один) может быть только у сетевого интерфейса, использующего на сетевом уровне IP-протокол.
Сетевой интерфейс не обязательно ассоциирован с сет.картой, это м.б. и, к примеру, модем
← →
ancara © (2006-08-31 12:38) [2]получить список интерфейсов можно средствами winsock, это просто:
сoздаем сокет s, затем для этого сокета делаем
WSAIoCtl(s, SIO_GET_INTERFACE_LIST, nil, 0, buf, ....);
buf - это указатель на область памяти, которая будет залита структурами INTERFACE_INFO.
Т.е. инфо о первом интерфейсе будет располагаться по адресу buf,
о втором - по адресу Pointer(Longint(buf)+sizeof(INTERFACE_INFO)) и т.д.
У WSAIoCtl есть параметр lpcbBytesReturned - он означает объем информации в байтах, залитых по адресу buf. Делим это кол-во на размер структуры: sizeof(INTERFACE_INFO) и получаем количество интерфесов, по которым получена информация.
Память для buf должна быть выделена заранее, если мне память не изменяеть, WSAIoCtr сама не этого не сделает.
Что содержит INTERFACE_INFO: см.MSDN
Flags (IFF_UP, IFF_BROADCAST, IFF_LOOPBACK, IFF_POINTTOPOINT, IFF_MULTICAST)
Address Address of an interface.
BroadcastAddress Broadcast address of the interface or the address of the other side for point-to-point links.
Netmask Netmask used by the interface.
Как управлять интерфесами не знаю, сам не пробовал, но подозреваю что при помощи того же WSAIoCtl, хотя...
← →
Отец Кондратий (2006-09-01 10:12) [3]Ужо не раз отвечалось на сей вопрос. Искать тут: http://www.delphimaster.ru/cgi-bin/forum.pl?n=4 (iphlpapi.dll в помощь)!
← →
To4kA (2006-09-04 18:07) [4]Большое Всем СпасиБо!!!
Очень признателен :)
← →
Observador (2006-09-09 23:59) [5]давненько я етим не пользовался,
но работала програмка исправно
B Win2k, 2003, Xp.
.......................
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Sockets, Winsock, IdUDPClient, IdBaseComponent,
IdComponent, IdUDPBase, IdUDPServer;
type mEntorno = class
IP : string; // IP local
HostName:string; // nombre de comp en la red
end;
type
TForm1 = class(TForm)
m1: TMemo;
......................
procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested : WORD;
wsaData : TWSAData;
p : PHostEnt;
s : array[0..128] of char;
p2 : pchar;
begin
ent := mEntorno.Create;
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
//Get the computer name
GetHostName(@s, 128);
p := GetHostByName(@s);
M1.Lines.Add("Host: "+p^.h_Name);
ent.HostName := p^.h_Name;
{Get the IpAddress}
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
M1.Lines.Add("IP: "+p2);
ent.IP := p2;
end;
......................
← →
имя (2006-10-03 00:45) [6]Удалено модератором
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.454 c