Вверх ↑
Разработчик
Ответов: 26324
Рейтинг: 2148
#1: 2013-02-01 01:42:28 ЛС | профиль | цитата
Gorgar писал(а):
он вообще работоспособен?

Да, после небольшого причесывания

Add(MainForm,12399705,224,168)
{
Left=20
Top=105
Width=269
Height=148
Caption="IPtoMAC"
Position=1
}
Add(Button,6057487,224,217)
{
Left=95
Top=75
TabOrder=-1
Caption="GetMAC"
link(onClick,4607153:doMAC,[])
}
Add(InlineCode,4607153,287,217)
{
WorkPoints=#5:doMAC|
EventPoints=#5:onMAC|
VarPoints=#3:MAC|
DataPoints=#2:IP|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|37:uses Windows,KOL,Share,Debug,winsock;|0:|5:const|33: MAX_ADAPTER_ADDRESS_LENGTH = 6;|0:|4:type|63:TMacAddress = array[0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of byte;|2: |4:type|28: THiAsmClass = class(TDebug)|10: private|19: FMAC: String;|9: public|19: IP:THI_Event;|23: onMAC :THI_Event;|51: procedure doMAC(var _Data:TData; Index:word);|49: procedure MAC(var _Data:TData; Index:word);|7: end;|0:|14:implementation|0:|62:function SendARP(const DestIP, SrcIP: ULONG; pMacAddr: PULONG;|81: var PhyAddrLen: ULONG): DWORD; stdcall; external 'IPHLPAPI.DLL';|0:|28:procedure THiAsmClass.doMAC;|3:var|22: DestIP, SrcIP: ULONG;|23: pMacAddr: TMacAddress;|19: PhyAddrLen: ULONG;|16: IP_adr: string;|0:|59:function GetMAC(Value: TMacAddress; Length: DWORD): String;|3:var|13: i: Integer;|5:begin|20: if Length = 0 then|33: Result := '00-00-00-00-00-00'|8: else |7: begin|17: Result := '';|30: for i:= 0 to Length - 1 do|53: Result := Result + Int2Hex(Value[i], 2) + '-';|26: DeleteTail(Result, 1);|8: end; |4:end;|0:|5:begin|35: IP_adr := ToStringEvent(IP) + #0;|40: SetLength(IP_adr, Length(IP_adr) - 1);|28: if IP_adr = '' then exit; |34: DestIP := inet_addr(@IP_adr[1]);|18: PhyAddrLen := 6;|44: SendArp(DestIP, 0, @pMacAddr, PhyAddrLen);|39: FMAC := GetMAC(pMacAddr, PhyAddrLen);|27: _hi_onEvent(onMAC, FMAC);|4:end;|0:|26:procedure THiAsmClass.MAC;|5:begin|24: dtString(_Data, FMAC);|4:end;|0:|4:end.|
link(onMAC,8957743:doText,[])
link(IP,14221957:Text,[])
}
Add(Edit,8957743,350,217)
{
Left=45
Top=50
Width=165
Text=""
}
Add(Edit,14221957,287,168)
{
Left=45
Top=25
Width=165
Text="192.158.0.1"
}


карма: 22

0