13. februar 2003 - 14:29
Der er
10 kommentarer og 1 løsning
Get MAC adr
Hej Er det muligt at hente sin egen MAC adresse fra netkortet med c/c++ kode... En stykke kode ville være meget til hjælp fordi jeg sidder og skal bruge det så snarest som muligt.... ;) Mvh Daniel
Annonceindlæg fra DE-CIX
13. februar 2003 - 14:44
#1
hvad editor bruger du -- Borland CBuilder ?? MS Visual C++ ???
13. februar 2003 - 14:48
#2
F.eks. kan du finde diverse netkortsinfo sådan: #include <windows.h> #include <iphlpapi.h> #include <stdio.h> int main(int argc, char *argv) { IP_ADAPTER_INFO AdapterInfo[16]; DWORD dwBufLen = sizeof(AdapterInfo); DWORD dwStatus = GetAdaptersInfo(AdapterInfo, &dwBufLen); IP_ADAPTER_INFO *pAdapterInfo = AdapterInfo; FIXED_INFO AdapterFixedInfo[16]; DWORD dwLen = sizeof(AdapterFixedInfo); GetNetworkParams(AdapterFixedInfo, &dwLen); FIXED_INFO *pAdapterFixedInfo = AdapterFixedInfo; IP_ADDR_STRING *dnsList; do { printf("<adapter>\n"); printf("\t<name>%s</name>\n", pAdapterInfo->Description); printf("\t<ip>%s</ip>\n", pAdapterInfo->IpAddressList.IpAddress.String); printf("\t<subnet>%s</subnet>\n", pAdapterInfo->IpAddressList.IpMask.String); BYTE mac[8]; mac = pAdapterInfo->Address; char macaddr[32] = ""; sprintf(macaddr, "%02x-%02x-%02x-%02x-%02x-%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); printf("\t<mac>%s</mac>\n", macaddr); printf("</adapter>\n"); pAdapterInfo = pAdapterInfo->Next; } while(pAdapterInfo); return 0; }
13. februar 2003 - 14:51
#3
hmm søren >> jeg får to linker-err [Linker error] undefined reference to `GetAdaptersInfo@8' [Linker error] undefined reference to `GetNetworkParams@8' Can you explain ???
13. februar 2003 - 14:52
#4
Med MinGW kompileres (og linkes) sådan (forudsat at der er path til mingw\bin;mingw\lib - samt at filen hedder "main.cpp"): g++ -c main.cpp -s g++ -o main.exe main.o -s -liphlpapi Eksempel output er (min konfiguration): <adapter> <name>Realtek RTL8139 Family PCI Fast Ethernet NIC</name> <ip>212.10.185.26</ip> <subnet>255.255.240.0</subnet> <mac>00-50-ba-4a-cb-12</mac> </adapter>
13. februar 2003 - 14:52
#5
Det er fordi du ikke linker med "libiphlpapi.a" (se min forrige post).
13. februar 2003 - 14:53
#6
Hmmm jeg bruger Bloodshed Dev-Cpp++ - og der skulle MingW da være med :-/ ???
13. februar 2003 - 14:55
#7
Somewhere i "project options" kan du vælge hvilke ekstra libs du vil linke med - vælg mingw\lib\libiphlpapi.a (husk at vælg filtypen til enten .* eller .a).
13. februar 2003 - 14:55
#8
hmmm den ligger ellers i mit include-bib :-/ --- og jeg har direkte copy-wasted din source ind sååå...
14. februar 2003 - 08:56
#10
GetNetworkParams P_ADAPTER_INFO GetAdaptersInfo FIXED_INFO IP_ADDR_STRING De her udtryk som jeg har skrever, kan jeg ikke finde nogen hjælp til i Builder 5.0 som jeg bruger. Jeg har fundet ud at det er nogle structure.
14. februar 2003 - 10:18
#11
Søg på MSDN - så finder du dem.
Kurser inden for grundlæggende programmering