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

Вниз

MAC адрес в offline   Найти похожие ветки 

 
Kr_H|6apa6aH   (2006-11-09 11:00) [0]

Использую МАС как ключ, для своей программы, только вот на некоторых рабочих местах нет сети и МАС не определяется. Подскажите кто нибудь, как можно определить МАС находясь в офлауне? Может из реестра где откопать. В общем я уже устал искать.


 
Anatoly Podgoretsky ©   (2006-11-09 11:31) [1]

> Kr_H|6apa6aH  (09.11.2006 11:00:00)  [0]

А что будешь делать когда ключ потеряется?
А что будет делать бедный пользователь твоей чудо программы?
В Штатах и Европе продавать собираешься или только на диком рынке?


 
Ketmar ©   (2006-11-09 12:41) [2]

а у меня вот, например, сетевухи нет. как MAC-то определить? кто подскажет, а?


 
Anatoly Podgoretsky ©   (2006-11-09 13:27) [3]

> Ketmar  (09.11.2006 12:41:02)  [2]

Плата не нужна, нужна инсталированая сеть, правда я сразу могу сказать результат для типового адаптера - 00-00-00-00-00-00 но ты его определишь.


 
Ketmar ©   (2006-11-09 14:31) [4]

>[3] Anatoly Podgoretsky(c) 9-Nov-2006, 13:27
>Плата не нужна
"как это?" (ц)


 
Anatoly Podgoretsky ©   (2006-11-09 14:35) [5]

Виртуальный адаптер сети, аналогично принтеру, виртуальный адаптер сети существует у Микрософта по крайней мере 10 лет. Хороший драйвер адаптера сети позволяет указывать любой МАС адрес, хоть виртуалом, хоть реальным. Последнее очень актуально для подключения к Сети, провайдеры однако.


 
Ketmar ©   (2006-11-09 14:50) [6]

а. понял. а то я задумался, как это: сеть есть, а платы нет. теперь ясно, о чём ты. %-)


 
Anatoly Podgoretsky ©   (2006-11-09 15:06) [7]

> Ketmar  (09.11.2006 14:50:06)  [6]

Между прочим ранее частый вопрос - как отладить сетевое приложение, если у меня сетевой платы нет. Ответы или виртуальный адаптер или модем.


 
Ketmar ©   (2006-11-09 15:17) [8]

я просто забыл о такой ерунде. %-)


 
Anatoly Podgoretsky ©   (2006-11-09 16:15) [9]

> Ketmar  (09.11.2006 15:17:08)  [8]

Так и есть, ерунда, а тогда серьезно. Прикинь сколько стоила сетевая плата десять лет назад.


 
Ketmar ©   (2006-11-09 16:27) [10]

>[9] Anatoly Podgoretsky(c) 9-Nov-2006, 16:15
>Прикинь сколько стоила сетевая плата десять лет назад.
зачем прикидывать? можно поднатужиться и вспомнить. %-)


 
DVM ©   (2006-11-10 10:09) [11]


> зачем прикидывать? можно поднатужиться и вспомнить. %-)

Как сейчас помню, в 1996 году покупал 2 сетевые ISA NE2000 стоили по 250 руб кажется, курс доллара был 6 руб.


 
Anatoly Podgoretsky ©   (2006-11-10 13:48) [12]

> DVM  (10.11.2006 10:09:11)  [11]

В общем стоили столько, сколько сейчас стоит системный блок, с интегриваной сетевой и аудио платой.
Это уже потом пошло постоянное снижение цен.


 
DVM ©   (2006-11-10 15:46) [13]


> В общем стоили столько, сколько сейчас стоит системный блок,
>  с интегриваной сетевой и аудио платой.

Ну это еще раньше чем 10 лет назад.


 
Anatoly Podgoretsky ©   (2006-11-10 16:02) [14]

> DVM  (10.11.2006 15:46:13)  [13]

Может быть, суть в том, что было время когда сетевая плата очень дорого стоила и не имела смысла ее покупать на домашний компьютер, только ради целей тестирования. Когда существовало бесплатное средство - эмулятор сетевой платы, ака виртуальный адаптер, при том для всех версий ОС. Я например обходился модемом или его емулятором.


 
Kr_H|6apa6aH   (2006-11-13 09:41) [15]

Я вообще спрашивал как сделать, а не разговоры говорить просил.
Проограмму я написал бесплатно, только вот не хочу, чтобы она дальше этого человека по рукам пошла.
Или хотя бы подскажите что можно сделать в этом случае?


 
DVM ©   (2006-11-13 13:55) [16]


> Или хотя бы подскажите что можно сделать в этом случае?

Привязывайся к нескольким характеристикам, например еще к жесткому диску, если один из номеров совпадает, значит компьютер правильный.


 
Anatoly Podgoretsky ©   (2006-11-13 14:56) [17]

> DVM  (13.11.2006 13:55:16)  [16]

А много ли их легкодоступных, действительно уникальных номеров?
Например HDD не относится к легкодоступным, если вообще доступным в некоторых случаях. МАС адрес легко изменяемый.

--


 
Kr_H|6apa6aH   (2006-11-15 12:22) [18]

И все таки как извлечь МАС в оффлайне. Искал в яндексе, он мне дал ссылку на этот сайт, но она не активна, т.е. как то можно, может кто интересовался или страница куда апереехала.


 
Вася   (2006-11-18 17:03) [19]


> Kr_H|6apa6aH   (15.11.06 12:22) [18]
> И все таки как извлечь МАС в оффлайне


uses Windows, SysUtils, Classes, Controls;

...

const
 MAX_ADAPTER_NAME_LENGTH        = 256;
 MAX_ADAPTER_DESCRIPTION_LENGTH = 128;
 MAX_ADAPTER_ADDRESS_LENGTH     = 8;

 // Типы адаптеров
 MIB_IF_TYPE_OTHER     = 1;
 MIB_IF_TYPE_ETHERNET  = 6;
 MIB_IF_TYPE_TOKENRING = 9;
 MIB_IF_TYPE_FDDI      = 15;
 MIB_IF_TYPE_PPP       = 23;
 MIB_IF_TYPE_LOOPBACK  = 24;
 MIB_IF_TYPE_SLIP      = 28;

Type // Структуры для выполнения GetAdaptersInfo

 PIP_ADDR_STRING = ^IP_ADDR_STRING;
 IP_ADDR_STRING = record
          Next: PIP_ADDR_STRING;
          IP  : array [0..15] of Char;
          Mask: array [0..15] of Char;
          Context: DWORD;
       end;

 Mac_Addr  = array [0..MAX_ADAPTER_ADDRESS_LENGTH-1] of BYTE;

 PIP_ADAPTER_INFO = ^IP_ADAPTER_INFO;
 IP_ADAPTER_INFO = record
   Next       : PIP_ADAPTER_INFO;
   ComboIndex : DWORD;
   AdapterName: array [0..MAX_ADAPTER_NAME_LENGTH+3] of Char;
   Description: array [0..MAX_ADAPTER_DESCRIPTION_LENGTH+3] of Char;
   AddressLength      : UINT;
   Address            : Mac_Addr;
   Index              : DWORD;
   Typ                : UINT;
   DhcpEnabled        : UINT;
   CurrentIpAddress   : PIP_ADDR_STRING;
   IpAddressList      : IP_ADDR_STRING;
   GatewayList        : IP_ADDR_STRING;
   DhcpServer         : IP_ADDR_STRING;
   HaveWins           : BOOL;
   PrimaryWinsServer  : IP_ADDR_STRING;
   SecondaryWinsServer: IP_ADDR_STRING;
   LeaseObtained      : LongInt;
   LeaseExpires       : LongInt;
 end;

Var   FLibHandle : THandle;
   // Процедура доступа к описанию сетевых интерфейсов
   GetAdaptersInfo : function(pAdapterInfo: PIP_ADAPTER_INFO;
                              var pOutBufLen: ULONG): DWORD; stdcall;

{================================================}
{ Загрузка библиотечных процедур                 }
{================================================}
Procedure Load_Library;
Begin
  IF FLibHandle = 0 THEN BEGIN
     // Загружаем библиотеку
     FLibHandle := LoadLibrary("IPHLPAPI.DLL");
     IF FLibHandle = 0 THEN Exit;
     // Получаем адреса библиотечных процедур
     @GetAdaptersInfo := GetProcAddress(FLibHandle, "GetAdaptersInfo");
     IF Not Assigned(GetAdaptersInfo) THEN FreeLibrary(FLibHandle);
  END;
End;
{================================================}
{ Преобразование МАС-адреса                      }
{================================================}
Function GetMAC(MAC:Mac_Addr; Length:Integer): String;
Var i: Integer;
Begin
  IF Length = 0 THEN
     Result := "000000000000"
  ELSE BEGIN
     Result := "";
     FOR i:=0 to Length-1 DO Result := Result + IntToHex(MAC[i],2);
  END;
End;

{================================================}
{ Получить описание сетевых интерфейсов          }
{================================================}
Var PInfo : PIP_ADAPTER_INFO;
   Len   : ULONG;
Begin
  Load_Library;
  IF Assigned(GetAdaptersInfo) THEN BEGIN

     // Определяем размер памяти под таблицу
     GetAdaptersInfo (nil, Len);
     GetMem (PInfo, Len);
     // Получаем данные об интерфейсах
     IF GetAdaptersInfo (PInfo, Len) = ERROR_SUCCESS THEN BEGIN
        REPEAT
           IF PInfo^.Typ <> MIB_IF_TYPE_LOOPBACK THEN BEGIN
              ...
              // данные адаптера
              // PInfo^.Description - имя интерфейса
              // GetMAC (PInfo^.Address, PInfo^.AddressLength); - МАС-адрес
              ...
              PInfo := PInfo^.Next;
           END;
        UNTIL PInfo = nil;
     END;
     FreeMem(PInfo);
  END;
end;


 
Kr_H|6apa6aH   (2006-11-20 09:12) [20]

Удалено модератором


 
Kr_H|6apa6aH   (2006-11-20 14:13) [21]

Модератор, расскажи мне зачем ты удалил млю благодарность Василию. Не твоё не трогай! Поставь на место что было!



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

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

Наверх




Память: 0.53 MB
Время: 0.044 c
2-1178514567
Officeman
2007-05-07 09:09
2007.05.27
Как вызввать функцию с Горячей клавиши неактивного окна


2-1178384918
Kostafey
2007-05-05 21:08
2007.05.27
Использование русских названий в тексте SQL-запроса.


3-1165474104
George
2006-12-07 09:48
2007.05.27
Права записи в InterBase


2-1178887697
Yury
2007-05-11 16:48
2007.05.27
Помогите новичку


15-1177873061
FesRV
2007-04-29 22:57
2007.05.27
DelphiX