Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.056 c
11-1160437093
doozer
2006-10-10 03:38
2007.05.27
Какой компонент предполагается использовать вместо TImage??


15-1178012802
@!!ex
2007-05-01 13:46
2007.05.27
Midlet Pascal


15-1177628719
ЭРИКА
2007-04-27 03:05
2007.05.27
ВСЕМ ,КТО РОДИЛСЯ СЕГОДНЯ!


1-1175530495
DelphiLexx
2007-04-02 20:14
2007.05.27
Из TPageControl сделать аналог TNoteBook a


15-1177683530
Juice
2007-04-27 18:18
2007.05.27
ERwin vs Sybase PowerDesigner





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский