Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2019, 20:59   #1
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию Получения мак адреса

Получения мак адреса подскажите как получить мак адрес сетевой платы
Есть у материнской платы уникальный id и возможно ли его получить?
linda88 вне форума Ответить с цитированием
Старый 18.04.2019, 21:19   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Сообщение от linda88 Посмотреть сообщение
Получения мак адреса подскажите как получить мак адрес сетевой платы
https://docs.microsoft.com/en-us/win...ptersaddresses

Цитата:
Сообщение от linda88 Посмотреть сообщение
Есть у материнской платы уникальный id и возможно ли его получить?
Смотря, что под этим понимать и для чего. Какую-ту инфу типа названия/серийника/... получить можно, но и поменять их можно.
p51x вне форума Ответить с цитированием
Старый 18.04.2019, 22:53   #3
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну я как-то так делал. Давно правда...
Код:
uses Windows, WinSock, SysUtils;

type
  TMacAddress = array [1..6] of byte;

...............
function GetMAC(Value: TMacAddress; Length: DWORD): String;
var
  i: integer;
begin
 if Length = 0 then Result := '00-00-00-00-00-00'
 else
 begin
  Result:= '';
  for i:= 1 to Length-1 do
   Result := Result + IntToHex(Value[i], 2) + '-';
  Result := Result + IntToHex(Value[Length], 2)
 end
end;

function GetMacFromIP(IP: string): string;
var
  DestIP, SrcIP: ULONG;
  pMacAddr: TMacAddress;
  PhyAddrLen: ULONG;
  ps: PAnsiChar;
begin
 GetMem(ps, Length(ip)*2);
 strPCopy(ps, AnsiString(ip));
 DestIP:= inet_addr(ps);
 FreeMem(ps);
 PhyAddrLen:= 6;
 SendArp(DestIP, 0, @pMacAddr, PhyAddrLen);
 Result := GetMAC(pMacAddr, PhyAddrLen)
end;

Последний раз редактировалось Баламут; 18.04.2019 в 22:57.
Баламут вне форума Ответить с цитированием
Старый 19.04.2019, 10:36   #4
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
https://docs.microsoft.com/en-us/win...ptersaddresses


Смотря, что под этим понимать и для чего. Какую-ту инфу типа названия/серийника/... получить можно, но и поменять их можно.
Иметься ввиду привязка программы к мак адресу сетевой платы и материки чтобы нельзя было отвязать. Свое образная идентификация компьютера.

Последний раз редактировалось linda88; 19.04.2019 в 10:38.
linda88 вне форума Ответить с цитированием
Старый 19.04.2019, 11:03   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Я так и подумал. Это очень давно прошедший этап. Все эти значения легко меняются, а у легальных пользователей проблемы, например, при замене сетевухи.
p51x вне форума Ответить с цитированием
Старый 19.04.2019, 16:55   #6
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Вот ни один раз уже слышал об этом, но так и не понял... В каком месте у компа может быть УНИКАЛЬНЫЙ ID? И уж тем более который нельзя изменить. Сетевуха не в счет

Последний раз редактировалось Баламут; 19.04.2019 в 16:58.
Баламут вне форума Ответить с цитированием
Старый 19.04.2019, 16:59   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну, теоретически, если собрать имя_материнки, ее серийник, модель системного диска, его серийник, мак адрес, ... то вероятность наткнутся на одинаковый набор уменьшается.
Про неизменить это сложнее, но, теоретически, если использовать всякие TPM и подобные...
p51x вне форума Ответить с цитированием
Старый 19.04.2019, 17:16   #8
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну так я об этом и говорю. Где взять серийник материнки? Что это вообще?
Баламут вне форума Ответить с цитированием
Старый 19.04.2019, 17:24   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Есть несколько вариантов:
1. попроще, получить набор параметров
Цитата:
"BiosMajorRelease"
"BiosMinorRelease"
"ECFirmwareMajorRelease"
"ECFirmwareMinorRelease"
"BaseBoardManufacturer"
"BaseBoardProduct"
"BaseBoardVersion"
"BIOSReleaseDate"
"BIOSVendor"
"BIOSVersion"
"SystemFamily"
"SystemManufacturer"
"SystemProductName"
"SystemSKU"
"SystemVersion"
можно даже из реестра
2. посложнее, брать что-то типа GetSystemFirmwareTable и парсить SMBIOS
конечно, это ничего не гарантирует...
p51x вне форума Ответить с цитированием
Старый 19.04.2019, 17:37   #10
linda88
Пользователь
 
Регистрация: 17.01.2019
Сообщений: 78
По умолчанию

т.е. получается только сетевой платы неизменные параметры?
linda88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1. Ввести символьный массив. Найти адреса всех парных его элементов. 2. Вывести адреса элементов массива 4 на 4, находящихся выше главной диагонали. 3. Реализовать следующее задани Y2J Помощь студентам 1 27.11.2018 20:32
Создать заголовок Bootstrap используемый в DHCP для автоматического получения клиентом Ip адреса Aliens_wolfs Работа с сетью в Delphi 1 23.03.2012 14:51
Известны фамилии,адреса и телефоны 25-ти человек,Найти фамилии и адреса людей,чей телефон начинается с цифры 3. Расмотреть два слу salomon93 Паскаль, Turbo Pascal, PascalABC.NET 11 01.12.2011 23:36
ПО для получения координат Иллидан Софт 2 07.07.2011 19:06