Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
4-1149174929
salexn
2006-06-01 19:15
2006.10.22
Измерить скорость чтения диска


2-1159791731
svt
2006-10-02 16:22
2006.10.22
Мастера, подскажите как сделать так, чтобы правильно


2-1159968026
m-kirill-2003
2006-10-04 17:20
2006.10.22
Обновление формы и пауза в программе


15-1159459101
Nic
2006-09-28 19:58
2006.10.22
Теперь и я не безработный


2-1159636497
anton773
2006-09-30 21:14
2006.10.22
сохранить шрифт memo в ini файле