Главная страница
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.027 c
2-1160053032
Pol
2006-10-05 16:57
2006.10.22
Виснет прога


4-1149111939
ychenick
2006-06-01 01:45
2006.10.22
Своя иконка возле кнопок свернуть,развернуть, закрыть


15-1159654051
VEG
2006-10-01 02:07
2006.10.22
Даже в блокноте нашлось место глюкам


2-1160003886
Juri
2006-10-05 03:18
2006.10.22
DBGrid


15-1157303391
VirEx
2006-09-03 21:09
2006.10.22
Кто слушает РЭП?