Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MAC адрес по IP, MAC адрес по IP 
:(
    Опции темы
mrVerus
Дата 24.9.2009, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



Здравствуйте! Помогите пожалуйста!!! Как получить MAC по IP в ЛС, мне это нужно для написания проги Wake UP'a
Смотрел все темы не разобрался
PM MAIL   Вверх
niteo
Дата 24.9.2009, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.11.2006
Где: Брянск

Репутация: 1
Всего: 1



Вот есть исходничек, там как раз определяется MAC удаленного хоста.
http://rouse.front.ru/infofromip.zip

Или пробуй так:
ping target
arp -a target

--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
mrVerus
Дата 24.9.2009, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



Понимаете эти команды не проходят. Можно ли компактный код получения МАКА по ИП7
PM MAIL   Вверх
niteo
Дата 24.9.2009, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 23.11.2006
Где: Брянск

Репутация: 1
Всего: 1



Цитата(mrVerus @  24.9.2009,  08:14 Найти цитируемый пост)
Понимаете эти команды не проходят.

Это виндузовские команды. их нада в командной строке набирать. Их можно и из прожки вызвать, и перехватить вывод консоли. Вот и будет тебе МАС адрес smile А лучше посмотри исходничек. Кстати, он же есть и в DRKB.
--------------------
Мне чужого лишнего не нада.Ешь ананасы, рябчиков жуй,день твой последний приходит, буржуй...
PM MAIL   Вверх
~FoX~
Дата 24.9.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



mrVerus, Заниматься засылом АРП пакетов и раскорячивать ответ мне лениво так что просто шлем запрос и получаем из структуры ответа МАК, после чего превращаем в удобоваримую форму
Код

uses Winsock;

  function SendARP(const DestIP, SrcIP: ULONG;
    pMacAddr: PULONG; var PhyAddrLen: ULONG): DWORD; stdcall; external 'IPHLPAPI.DLL';

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:= 0 to Length - 2 do
      Result := Result + IntToHex(Value[i], 2) + '-';
    Result := Result + IntToHex(Value[Length-1], 2);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  DestIP, SrcIP: ULONG;
  pMacAddr: TMacAddress;
  PhyAddrLen: ULONG;
begin
  DestIP := inet_addr('192.168.0.254');
  PhyAddrLen := 6;
  SendArp(DestIP, 0, @pMacAddr, PhyAddrLen);
  Form1.Caption := GetMAC(pMacAddr, PhyAddrLen);
end;


Естественно, что ты можешь определить MAC только внутри своей подсети...
И естественно что записи 127.0.0.1 в АРП таблице нету, т.е. определить собственный МАК по 127.0.0.1 не получиться, придется указывать истинный ИП

Это сообщение отредактировал(а) ~FoX~ - 24.9.2009, 09:19


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
mrVerus
Дата 24.9.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



А что за функция Inet_addr();7
PM MAIL   Вверх
~FoX~
Дата 24.9.2009, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



Забыл, поставь в uses Winsock
Подправил первый пост...А если не хочится тащить весь модуль то вот описание функции

Код

  function inet_addr(IPAddr: PChar): ULONG;    stdcall;      external    'wsock32.dll';




Это сообщение отредактировал(а) ~FoX~ - 24.9.2009, 09:25


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
mrVerus
Дата 24.9.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



Извините тормазнул вопрос снят!
Огромное спасибо Вам! Дорости бы до вашего уровня
PM MAIL   Вверх
~FoX~
Дата 24.9.2009, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 3
Всего: 68



[off]
mrVerus, Какие ваши годы  smile 

[/off]


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
mrVerus
Дата 24.9.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



Еще раз ОГРОМНОЕ СПАСИБО!!!!
Закрываю вопрос
PM MAIL   Вверх
mrVerus
Дата 25.9.2009, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



Адреса получаю но не MAC'и функция дает не верные адреса smile 
PM MAIL   Вверх
mrVerus
Дата 25.9.2009, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 10.3.2009

Репутация: нет
Всего: нет



Все понял! Это я ламер! Просто в типе TMacAddress = array [1..6] of byte нужно полставить массив ни с 1, а с 0. ТЕ  TMacAddress = array [0..5] of byte; Совсем отупел smile 

Это сообщение отредактировал(а) mrVerus - 25.9.2009, 10:06
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0861 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.