Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

Цитата:
Сообщение от linda88 Посмотреть сообщение
Есть у материнской платы уникальный id и возможно ли его получить?
Смотря, что под этим понимать и для чего. Какую-ту инфу типа названия/серийника/... получить можно, но и поменять их можно.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 18.04.2019, 23:53   #3
Баламут
Баламучу слегка...
СуперМодератор
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Адрес: Владивосток
Сообщений: 1,566
Репутация: 1092
По умолчанию

Ну я как-то так делал. Давно правда...
Код:
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 в 23:57.
Баламут вне форума   Ответить с цитированием
Старый 19.04.2019, 11:36   #4
linda88
Форумчанин
 
Регистрация: 17.01.2019
Сообщений: 73
Репутация: 27
По умолчанию

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


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

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

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

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

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

Ну, теоретически, если собрать имя_материнки, ее серийник, модель системного диска, его серийник, мак адрес, ... то вероятность наткнутся на одинаковый набор уменьшается.
Про неизменить это сложнее, но, теоретически, если использовать всякие TPM и подобные...
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 19.04.2019, 18:16   #8
Баламут
Баламучу слегка...
СуперМодератор
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Адрес: Владивосток
Сообщений: 1,566
Репутация: 1092
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


22:57.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.