Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26324
Рейтинг: 2148
#16: 2013-01-28 10:30:34 ЛС | профиль | цитата
Gorgar писал(а):
Какие результаты?

Я еще не на работе, как проверю, отпишусь
------------ Дoбавленo в 10.30:
Проверил. Из всех компов увидело только сервер. Полагаю, что связано нечитание параметров с отсутствием удаленной поддержки WMI на остальных компах. На сервере у меня включено удаленное администрирование, на остальных компах оно отключено. Компоненты WMI просто надстройки, все зависит от разрешений самой системы
карма: 22

0
Ответов: 50
Рейтинг: 2
#17: 2013-01-28 12:19:48 ЛС | профиль | цитата
Ну я примерно так и думал.
Придётся ручками кодить.
Есть у кого нибудь ещё мысли как получить МАС?
карма: 0

0
Ответов: 5227
Рейтинг: 587
#18: 2013-01-29 09:32:32 ЛС | профиль | цитата
run->getmac
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 50
Рейтинг: 2
#19: 2013-01-31 13:05:32 ЛС | профиль | цитата
Сейчас пытаюсь сделать через IC но компилятор выдаёт ошибку:Error: Missing operator or semicolon.
code_30229.txt
карма: 0

0
файлы: 1code_30229.txt [1.1KB] [113]
Разработчик
Ответов: 26324
Рейтинг: 2148
#20: 2013-01-31 13:22:36 ЛС | профиль | цитата
Gorgar писал(а):
но компилятор выдаёт ошибку

У тебя
inet_addr: ULONG;
а ты пытаешься переменную ULONG использовать как функцию

DestIP := inet_addr('192.168.0.1');

карма: 22

0
Ответов: 50
Рейтинг: 2
#21: 2013-01-31 16:56:38 ЛС | профиль | цитата
Сейчас компилируется нормально но программа вылеает
Make(delphi)
ver(4.04 build 185)
Add(MainForm,12399705,252,154)
{
Left=20
Top=105
Width=285
Height=249
Caption="MACIP"
Position=1
}
Add(Button,6057487,273,231)
{
Left=105
Top=130
TabOrder=-1
Caption="GetMAC"
link(onClick,4607153:goMAC,[])
}
Add(InlineCode,4607153,392,231)
{
WorkPoints=#5:goMAC|
EventPoints=#5:onMAC|
VarPoints=#3:MAC|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Windows,KOL,Share,Debug;|0:|5:const|33: MAX_ADAPTER_ADDRESS_LENGTH = 6;|0:|4:type|63:TMacAddress = array[0..MAX_ADAPTER_ADDRESS_LENGTH - 1] of byte;|0:|2: |4:type|28: THiAsmClass = class(TDebug)|10: private|19: FMAC: String;|9: public|23: onMAC :THI_Event;|51: procedure goMAC(var _Data:TData; Index:word);|49: procedure MAC(var _Data:TData; Index:word);|7: end;|0:|0:|14:implementation|0:|46://********************************************|59:function GetMAC(Value: TMacAddress; Length: DWORD): String;|3:var|13: I: Integer;|5:begin|56: if Length = 0 then Result := '00-00-00-00-00-00' else|8: begin|18: Result := '';|31: for i:= 0 to Length - 2 do|53: Result := Result + Int2Hex(Value[i], 2) + '-';|52: Result := Result + Int2Hex(Value[Length-1], 2);|7: end;|4:end;|46://********************************************|0:|80:function inet_addr(s: string): Integer; external 'wsock32.dll' name 'inet_addr';|44:function SendARP(const DestIP, SrcIP: ULONG;|85: pMacAddr: PULONG; var PhyAddrLen: ULONG): DWORD; stdcall; external 'IPHLPAPI.DLL';|0:|0:|0:|28:procedure THiAsmClass.goMAC;|3:var|22: DestIP, SrcIP: ULONG;|23: pMacAddr: TMacAddress;|19: PhyAddrLen: ULONG;|5:begin|36: DestIP := inet_addr('192.168.0.1');|17: PhyAddrLen := 6;|43: SendArp(DestIP, 0, @pMacAddr, PhyAddrLen);|38: FMAC := GetMAC(pMacAddr, PhyAddrLen);|20: _hi_onEvent(onMAC);|4:end;|0:|26:procedure THiAsmClass.MAC;|5:begin|25: dtString(_Data, FMAC);|4: |4:end;|0:|4:end.|
link(onMAC,8957743:doText,[(436,237)(436,279)(373,279)(373,321)])
}
Add(Edit,8957743,392,315)
{
Left=45
Top=25
Width=165
link(Str,4607153:MAC,[])
}


nesco, я понимаю что это говнокод но он вообще работоспособен?
Просто только начал изучать HiAsm.
карма: 0

0
Разработчик
Ответов: 26324
Рейтинг: 2148
#22: 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
Ответов: 50
Рейтинг: 2
#23: 2013-02-01 08:18:51 ЛС | профиль | цитата
nesco писал(а):
Да, после небольшого причесывания

О,большое спасибо а то я бы долго мучался.
карма: 0

0
23
Сообщение
...
Прикрепленные файлы
(файлы не залиты)