Форум: "Сети";
Текущий архив: 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.5 MB
Время: 0.039 c