вообщем не знаю какая у тебя ось, для винды хр можно сделать так:
Открываем раздел "HKLM\SYSTEM\CurrentControlSet\Control\
Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
тут описаны интерфейсы всех имеющихся сетевых адаптеров. Находим нужный нам интерфейс он будет содержать имя сетевой карты.Там где будут тольлко ветки Linkage и Ndi туда не нельзь эт не то что нужно.
Изменяем (добавляем, его может и не быть, тип данных - REG_SZ) ключ "NetworkAddress". Вводим новый адрес.
Отключаем, затем включаем сетку.
ЗЫ чисто теоритически, если не можнешь найти ключ NetworkAddress и куда его пихать тож не особо понятно, попробуй изменить МАС в ручную, по идее этот ключ должен создатся.
Если же нет то просто заюзай поиск по вбитому тобой новому адресу в реестре, далее я думаю не так уж и сложно считать значение ключа и изменить его.
думаю и сам знаешь как это делать но... на всякий случай
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
REG : TRegistry;
begin
REG := TRegistry.Create;
REG.RootKey:=HKEY_LOCAL_MACHINE;
REG.OpenKey('SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\000X\.....',true);
REG.WriteString('Test1','C:\\\'); //собственно добавляем ключ
Memo1.lines.text:=REG.ReadString('Test1'); // читаем значение ключа
REG.CloseKey;
REG.Destroy;
end;
пробелы в коде вставляет форум, соответственно убрать