Форум: "Сети";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизОпределение сетевой карты Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c