Hogyan tudom autoitban leolvasni a háló kártya számát?
Feljegyezni hogy az éppen futó program melyik gépen fut.
Ez a gép neve:@ComputerName
Ez az ip cime:_GetIP()
Utóbbira van többféle is.
Próbáld ezt, ezzel nekem ment (természetesen az IP-t javitsd a megfelelőre, vagy add át neki a beolvasott IP cimet) :
$MAC = _GetMACFromIP ("192.168.1.1")
MsgBox (0, "MAC Value", $MAC)
Func DllStructDelete($stStruct)
$stStruct = 0
EndFunc
Func _GetMACFromIP ($sIP)
Local $MAC,$MACSize
Local $i,$s,$r,$iIP
;Create the struct
;{
; char data[6];
;}MAC
$MAC = DllStructCreate("byte[6]")
;Create a pointer to an int
; int *MACSize;
$MACSize = DllStructCreate("int")
;*MACSize = 6;
DllStructSetData($MACSize,1,6)
;call inet_addr($sIP)
$r = DllCall ("Ws2_32.dll", "int", "inet_addr","str", $sIP)
$iIP = $r[0]
;Make the DllCall
$r = DllCall ("iphlpapi.dll", "int", "SendARP","int", $iIP,"int", 0,"ptr", DllStructGetPtr($MAC),"ptr", DllStructGetPtr($MACSize))
;Format the MAC address into user readble format: 00:00:00:00:00:00
$s = ""
For $i = 0 To 5
If $i Then $s = $s & ":"
$s = $s & Hex(DllStructGetData($MAC,1,$i+1),2)
Next
;Must free the memory after it is used
DllStructDelete($MAC);
DllStructDelete($MACSize)
;Return the user readble MAC address
Return $s
EndFunc
Forrás : [link]
Sok sikert.
üdv.
A kódot kipróbáltam, nálam működött, az hogy nálad mi a hiba ebből a "sok" információból : "nem megy" sajnos nem tudom megmondani.
sok sikert.
üdv.
Rendben, ez már egy kicsit több info :
Az első sorban lévő IP cimet módosítottad ?
Nekem akkor irt nullákat, ha olyan IP-nek a a MAC cimét szerettem volna megtudni, ami nem létezik.
A kódot kipróbáltam céges gépen is, és ott is tökéletesen működik, de, ha igy próbálom akkor nekem is nullákat ir ki :
$MAC = _GetMACFromIP ("192.167.9.1")
MsgBox (0, "MAC Value", $MAC)
Mivel a cégnél nincs "192.167.9.1" ip cimű gép/hálókártya.
Tehát a kérdés továbbra is a következő :
Az első sorban lévő IP cimet módosítottad a sajátodnak megfelelően, vagy átadtad neki a megszerzett IP cimet a következő módon (ha az IP cim megszerzésére a _GetIP() függvényt használod) ? :
Illetve ha igy próbáltad akkor előtte irasd ki az IP-t, hogy leellenőrizd, hogy biztosan jó-e az IP cim :
MsgBox (0, "IP cim", _GetIP())
$MAC = _GetMACFromIP (_GetIP())
MsgBox (0, "MAC Value", $MAC)
Sok sikert.
üdv.
A teljes kódot másoltam be s ezt a getip-t irtam be az Ip cim helyére.
Most ezt is futattam, a háló kártya számát rendben kiirja, de a másodiknál leáll ezzel a hibaüzenettel:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!