Code: Alles auswählen
#PF_INET = 2
#SOCK_DGRAM = 2
#SIOCGIFHWADDR = $8927
#SIOCGIFCONF=$8912
Structure sockaddr
sa_family.w ; address family, AF_xxx
sa_data.c[8] ; 14 bytes of protocol address
EndStructure
Structure ifreq
ifr_name.c[16]
StructureUnion
ifr_addr.sockaddr
ifr_dstaddr.sockaddr
ifr_broadaddr.sockaddr
ifr_netmask.sockaddr
ifr_hwaddr.sockaddr
ifr_flags.w
ifr_ifindex.l
ifr_metric.l
ifr_mtu.l
*ifmapifr_map
ifr_slave.s
ifr_newname.s
ifr_data.s
EndStructureUnion
EndStructure
Procedure.s getMAC()
Protected socket.l
Protected i.b
Protected mac.s
Protected buffer.ifreq
socket = SOCKET_(#PF_INET, #SOCK_DGRAM, 0)
If socket
PokeS(@buffer\ifr_name,"eth0")
If ioctl_(socket, #SIOCGIFHWADDR, @buffer) <> -1
For i = 0 To 5
If i = 0
mac = RSet(Hex(buffer\ifr_hwaddr\sa_data[i]), 2, "0")
Else
mac = mac + ":" + RSet(Hex(buffer\ifr_hwaddr\sa_data[i]), 2, "0")
EndIf
Next
EndIf
close_(socket)
ProcedureReturn mac
EndIf
EndProcedure
Debug getMac()