Kezdőoldal » Számítástechnika » Programozás » Hogyan tudom autoitban leolvas...

Hogyan tudom autoitban leolvasni a háló kártya számát?

Figyelt kérdés
2017. ápr. 17. 17:48
1 2 3
 11/26 coopper ***** válasza:

Ez a hiba azt jelenti, hogy nem találja meg a "_GetMACFromIP" nevezetű függvényt, ami valóban azt jelenti, hogy nincs ott a függvény.


Két módon orvosolható a gond :


Abba az AU3 fájlban (hálókártya2.au3) bemásolod a fenti kódot a _GetMACFromIP függvény kódját (az első két sor kivételével az összes sor kell).


A másik megoldás készitesz (a szabályoknak megfelelően) egy AU3 fájlt ami az általad használt függvényeket tárolod és azt mindig beincludolod a programodhoz, ugyan úgy ahogy a képen is látszik :


#include <Array.au3>

#include <Inet.au3>

#include <MsgBoxConstants.au3>

#include <SajatFuggvenyeim.au3>


és az elkészitett SajatFuggvenyeim.au3 fájlt bemásolod az autoit "Include" mappájába (a többi au3 fájl mellé - innentől használhatod az INCLUDE utasitást).


Sok sikert.

üdv.

2017. ápr. 18. 12:03
Hasznos számodra ez a válasz?
 12/26 A kérdező kommentje:

ez utóbbi jobban érdekel mert profibbnak látszik. Azonban lenne egy teljesen más kérdésem. Jelenleg rengeteg "saját" "függvényem" van, de másképp.


Func Dgep() ;#41

EndFunc


Ilyenek közt van s ezt pl.

Dgep()

utasítással hívom meg. Milyen esetekben indokolt ezt vagy e helyett azt választani, amit Te írtál?

2017. ápr. 18. 12:08
 13/26 A kérdező kommentje:

Fura. Az alábbi program első msgboxban kiir egy ip számot, a másodikban azonban továbbra is nullákat é pontokat.

Lehet ez amiatt, hogy wifin van ép a laptop?


#include <Array.au3>

#include <Inet.au3>

#include <MsgBoxConstants.au3>


MsgBox (0, "IP cim", _GetIP())

$MAC = _GetMACFromIP (_GetIP())

MsgBox (0, "MAC Value", $MAC)


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



Func DllStructDelete($stStruct)

$stStruct = 0

EndFunc

2017. ápr. 18. 12:20
 14/26 A kérdező kommentje:

*nullákat és kettőspontokat.

ráadásul rendkívül lassan teszi

2017. ápr. 18. 12:22
 15/26 coopper ***** válasza:

Teljesen mindegy, hogy a saját függvényeid mi módon hivod meg, és hogy hol vannak, elvileg ugyanúgy kell nekik viselkedniük include függvényként is mint ha a program lennének.


A másik dolog, a lassúság, tipikusan azt jelenti, hogy nincs olyan IP cim aminek a MAC cimét szeretnéd tudni.


Sok sikert.

üdv.

2017. ápr. 18. 13:01
Hasznos számodra ez a válasz?
 16/26 A kérdező kommentje:

Na de ha nincs olyan IP cim akkor mi alapján ir ki IP cimet?

Ráadásul a másodiknál lassu az MAC cim leolvasása lenne.

Akkor van ip cim de nincs mac cim?

2017. ápr. 18. 13:07
 17/26 coopper ***** válasza:
Olyan szerintem nincs, esetlegesen egy dolgot tudok még elképzelni, hogy IPV6-os IP cime van a kártyának és ezért nem tudja a MAC cimet kiolvasni, és ezért viselkedik úgy mintha "nem létező IP cim" lenne.
2017. ápr. 18. 13:33
Hasznos számodra ez a válasz?
 18/26 A kérdező kommentje:

Ez a TCP/IPv4 és 6?


Az kizárja ezt a lehetőséget, hogy korábban használtam a laptopot vezetékes netről TCP/IPv4 beállitással és működött vagy ez független a felvetésedtől?

2017. ápr. 18. 13:38
 19/26 A kérdező kommentje:
érdekes helyzet mert kipróbáltam másik gépen s azon működik
2017. ápr. 18. 15:23
 20/26 A kérdező kommentje:

ellenben van egy furcsaság. Egy teljesen másik épületben más nethálozaton más ip cimen levő gépen működött.

De itt ahol nem működött a laptpon egy másik, asztali gépen ami nem wifin hanem kábelesen kapcsolódik ugyazzal az IP cimmel a routerrel megosztott nethez, azon ugyanigy nem működik. tehát nem a gép hálókártyája a ludas hanem a router?

2017. ápr. 18. 15:28
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!