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

Вниз

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

 
Kross   (2004-10-19 16:50) [0]

Подскажите возможно ли по сети определить какая сетвая карта стоит на компьютере? Если да то подскажите как?


 
Jeer ©   (2004-10-19 16:59) [1]

Можно ли по тлф. разговору с лицом из Нью-Васюков определить номиналы монет в евойном кармане ?
Если Лицо откликается на команды - то можно. (SNMP, а также надстройки над ним)
Если рядом с Лицом находится Доверенное Лицо, то - тоже можно.(Client/Server)


 
Дмитрий Ботвин   (2004-10-19 17:58) [2]

Можно через WMI. Класс WIN32_NetworkAdapter


 
Verg ©   (2004-10-19 22:53) [3]

GetAdaptersInfo ф-ция из iphlpapi.dll


 
Дмитрий Ботвин   (2004-10-20 10:44) [4]

Verg, а разве GetAdaptersInfo показывает инфу по сетевому
адаптеру удаленного компа???


 
Дмитрий Ботвин   (2004-10-20 11:01) [5]

Вот примерный код:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics,
 Controls, Forms, Dialogs,ActiveX, WbemScripting_TLB,
 StdCtrls, ComCtrls, ExtCtrls ;

function ADsEnumerateNext(pEnumVariant: IEnumVARIANT;
 cElements: ULONG; var pvar: OleVARIANT;
 var pcElementsFetched: ULONG): HRESULT; safecall;
 external "activeds.dll";

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Button1: TButton;
   Edit1: TEdit;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   procedure GetInfo(CompName: String);
 end;

var
 Form1: TForm1;

implementation

procedure DumpWMI_Process(Process: SWBemObject;Memo:TMemo);
var
 Enum: IEnumVARIANT;
 varArr: OleVariant;
 lNumElements: ULong;
 SProp: ISWbemProperty;
 Prop: OleVariant;
 PropName: string;
 PropValue: string;
begin
 Memo.Lines.Add("+ WMI Path: " + Process.Path_.Path);
 Enum := Process.Properties_._NewEnum as IEnumVariant;
 while (Succeeded(ADsEnumerateNext(Enum, 1, VarArr, lNumElements))) and (lNumElements > 0) do
 begin
   if Succeeded(IDispatch(varArr).QueryInterface(SWBemProperty, SProp)) and Assigned(SProp) then
   begin
     PropName  := SProp.Name;
     Prop := SProp.Get_Value;
     if VarTypeAsText(VarType(Prop))="Array Variant" then PropValue := ""
     else PropValue :=VarToStr(Prop);
     Memo.Lines.Add(PropName + " = " + PropValue);
   end;
 end;
end;

{$R *.dfm}

procedure TForm1.GetInfo(CompName: String);
var
 Enum: IEnumVARIANT;
 varArr: OleVariant;
 lNumElements: ULong;
 AName: array[0..255] of Char;
 ASize: DWORD;
begin
 Memo1.Lines.Clear;
 try
   Memo1.Lines.BeginUpdate;
   Enum := CoSWbemLocator.Create.ConnectServer
  (CompName, "root\cimv2", "", "", "", "", 0, nil).ExecQuery
  ("Select * from "+"WIN32_NetworkAdapter", "WQL",
  wbemFlagBidirectional, nil)._NewEnum as IEnumVariant;
  while (Succeeded(ADsEnumerateNext(Enum, 1, varArr,
  lNumElements))) and (lNumElements > 0) do
     begin
       DumpWMI_Process(IUnknown(varArr) as SWBemObject,Memo1);
     end;
 finally
   Memo1.Lines.EndUpdate;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 GetInfo(Trim(Edit1.Text));
end;

end.


 
Smithson   (2004-10-20 15:07) [6]

Можно еще так же, если известен mac. Для большинства солидных производителей выделены пулы mac-адресов. Хотя есть и исключения.


 
Дмитрий Ботвин   (2004-10-20 15:14) [7]

Smithson а как это через mac??? Можешь сорец набросать?? Или
хотя бы алгоритм....



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

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
1-1103783704
Ученик
2004-12-23 09:35
2005.01.09
Интерфейс без тормозов


1-1103729391
atruhin
2004-12-22 18:29
2005.01.09
Многострочный MessageBox


11-1084936490
AlexZ_CRC
2004-05-19 07:14
2005.01.09
midi


9-1095232019
Юра
2004-09-15 11:06
2005.01.09
GLScene - документация, работа


14-1103230472
GEN++
2004-12-16 23:54
2005.01.09
Ну и куда с этим обращаться ????