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

Вниз

MAC from IP   Найти похожие ветки 

 
Qwertyk ©   (2005-03-21 22:15) [0]

Как получить мак адрес по IP?


 
Piter ©   (2005-03-21 23:15) [1]

а зачем?


 
Qwertyk ©   (2005-03-21 23:46) [2]

хмм..
есть программа lanstartcmd, для включения компьютера по локальной стеи. Так вот мне нужно сделать для нее оболочку. Нужно определить МАК адрес компьютера по IP в локальной сети..


 
Piter ©   (2005-03-21 23:50) [3]

а система какая?


 
Alex Konshin ©   (2005-03-22 03:56) [4]

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

Попробуй, может, и зря я пугаю. Ищи в MSDN в IP Helper API функцию SendARP, если мне память не изменяет, ну или что-то рядом с ней.


 
Alex Konshin ©   (2005-03-22 04:15) [5]

Да, для тех, кто не понял. Спрашивал про статические адреса потому, что ARP кешируются, поэтому теоретически можно получить MAC того, чего уже нет (выключено). Если же еще и адреса динамические, то я вообще не понимаю, о каком IP идет речь.


 
Piter ©   (2005-03-22 16:51) [6]

Alex Konshin ©   (22.03.05 3:56) [4]
Мне вот и интересно, а будет ли кому на них отвечать, если компьютер выключен?


по-моему, нет

Alex Konshin ©   (22.03.05 3:56) [4]
Ищи в MSDN в IP Helper API функцию SendARP


верно - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/sendarp.asp

Но это для w2k/XP/2003

Для Win9x можно обратиться к узлу (например, пропинговать) и в ARP таблице искать соответствие IP-MAC (если пинг прошел, оно там должно быть)

Alex Konshin ©   (22.03.05 4:15) [5]
Спрашивал про статические адреса потому, что ARP кешируются


насколько я помню, не более, чем на минуту другую

Если же еще и адреса динамические, то я вообще не понимаю, о каком IP идет речь

а какая разница - статические или динамические адреса?! Просто в локалкее пытаются определить MAC сетевой карточки по IP адресу. Причем здест статика, динамика?


 
GLFox ©   (2005-03-22 16:56) [7]

Я использую такую вот функцию для получения MAC:

function GetHostInfoNB(sHostName:String; iInfoTypes:Integer):String;
var
 NCB:TNCB;
 i,iLen,iResCode:Integer;
 pAStat:^TAStat;
begin
 Result:="";
 if (sHostName="")or(sHostName=sLocalHostName) then sHostName:="*" else
   while (Length(sHostName)>0)and(sHostName[1]="\") do Delete(sHostName,1,1);
 FillChar(NCB,SizeOf(NCB),0);
 Ncb.ncb_command:=NCBRESET;
 Netbios(@NCB);
 FillChar(NCB,SizeOf(NCB),0);
 Ncb.ncb_command:=NCBASTAT;
 Ncb.ncb_lana_num:=0;
 New(pAStat);
 Ncb.ncb_buffer:=pAStat;
 Ncb.ncb_length:=SizeOf(TAStat);
 iLen:=Length(sHostName);
 for i:=0 to NCBNAMSZ-1 do
   if i<iLen then Ncb.ncb_callname[i]:=sHostName[i+1]
   else Ncb.ncb_callname[i]:=" ";
 iResCode:=Netbios(@NCB);
 if iResCode = 0 then begin
   if (nbiMACAddr and iInfoTypes) = nbiMACAddr then
     with pAStat^.adapt do begin
       Result:=Format("%.2x %.2x %.2x %.2x %.2x %.2x",
                     [adapter_address[0], adapter_address[1], adapter_address[2],
                      adapter_address[3], adapter_address[4], adapter_address[5]]);
     end;
   if (nbiGrpName and iInfoTypes) = nbiGrpName then begin
     if Result<>"" then Result:=Result+#0;
     for i:=0 to pAStat^.adapt.name_count-1 do
       if (pAStat^.NameBuff[i].name_flags and GROUP_NAME) = GROUP_NAME then begin
         Result:=Result+pAStat^.NameBuff[i].name;
         Break;
       end;
   end;
 end else AddEventToLog(etErrorInter,0,"NetBIOS error ("+sHostName+")");
 Dispose(pAStat);

где

TAStat=record
 adapt    : TAdapterStatus;
 NameBuff : array[0..29]of TNameBuffer;
end;


 
Piter ©   (2005-03-22 17:44) [8]

GLFox ©   (22.03.05 16:56) [7]
Result


а если NetBios на компьютере отключен?


 
Alex Konshin ©   (2005-03-22 23:57) [9]

Хуже - компьютер отключен.

Разница динамические/статические в том, что в случае динIP сам IP вообще не имеет смысла для отключенного компьютера, ведь при каждом включении он получает новый IP. Для статического я еще как-то могу представить ситуацию, что MAC-адрес где-то закешировался и мы его получили хотя компьютер выключен.



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

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

Наверх




Память: 0.49 MB
Время: 0.041 c
14-1116392273
syte_ser78
2005-05-18 08:57
2005.06.06
Вопрос к Сумчанам


14-1116234296
Ilya___
2005-05-16 13:04
2005.06.06
Господа помогите, Похоже ВИРУС!


1-1116689999
Max_005
2005-05-21 19:39
2005.06.06
inherited


4-1113558922
Serr
2005-04-15 13:55
2005.06.06
связь


14-1116575852
vidiv
2005-05-20 11:57
2005.06.06
Про принтеры